Re: 2.5.59-mm5

Alex Tomas
2003-01-24T12:05:55Z

>>>>> Andrew Morton (AM) writes:

AM> That's correct. Reads are usually synchronous and writes are
AM> rarely synchronous.

AM> The most common place where the kernel forces a user process to
AM> wait on completion of a write is actually in unlink (truncate,
AM> really). Because truncate must wait for in-progress I/O to
AM> complete before allowing the filesystem to free (and potentially
AM> reuse) the affected blocks.

looks like I miss something here.

why do wait for write completion in truncate?

getblk (blockmap);
getblk (bitmap);
set 0 in blockmap->b_data[N];
mark_buffer_dirty (blockmap);
clear_bit (N, &bitmap);
mark_buffer_dirty (bitmap);

isn't that enough?