RE: Question regarding concurrent accesses through block device and fs

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

 



 

> -----Original Message-----
> From: linux-fsdevel-owner@xxxxxxxxxxxxxxx 
> [mailto:linux-fsdevel-owner@xxxxxxxxxxxxxxx] On Behalf Of 
> Francis Moreau
> Sent: 2009年2月14日 4:26
> To: linux-fsdevel@xxxxxxxxxxxxxxx
> Subject: Question regarding concurrent accesses through block 
> device and fs
> 
> Hello,
> 
> I have a question regarding the page cache/buffer heads behaviour when
> some blocks are accessed through a regular file and through the block
> dev hosting this file.
> 
> First it looks like when accessing some blocks through a block device,
> the same mechanisms are used as when reading a file through a file
> system: the page cache is used.
> 
> That means that a block could be mapped by several buffers at the same
> time.
> 
> 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.

> 
> 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.

> 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
> 
> 
--
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