Re: Question regarding concurrent accesses through block device and fs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

2009/2/16  <Niu_Yawei@xxxxxxx>:
>> I don't see any issues to this but looking at __block_prepare_write(),
>> it seems that we don't want this to happen since it does:
>>
>>         [...]
>>         if (buffer_new(bh)) {
>>                 unmap_underlying_metadata(bh->b_bdev,
>> bh->b_blocknr);
>>
>>
>>                 [...]
>>         }
>>
>> where unmap_underlying_metadata() unmaps the blockdev buffer
>> which maps b_blocknr block. Also this call seems unneeded if
>> __block_prepare_write() is called when writing through the block
>> dev since we already know that the buffer doesn't exist (we are
>> here to create it).
>>
>> Could anybody why this is needed at all ?
>
> I think it's not necessary for block device too.

Do you mean that the call to unmap_underlying_metadata() is not needed
for both cases (blockdev and fs accesses) ?

>> Also I'm wondering if the block is written first through the file
>> system (but the data are still in the page cache, not commited to the
>> disk) and another process try to read the same block through the
>> block device. Does it get stale data ?
>>
>
> Yes, I think so. Kernel can't guarantee such kind of consistency.

So why trying to keep consistency for file systems accesses ?

thanks
-- 
Francis
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux