From mboxrd@z Thu Jan 1 00:00:00 1970 From: Francis Moreau Subject: Re: Question regarding concurrent accesses through block device and fs Date: Mon, 16 Feb 2009 10:03:05 +0100 Message-ID: <38b2ab8a0902160103i5a6a1aafr8c8d8f71d7eb668@mail.gmail.com> References: <7659DC78F120014CAC3C03E93F3DC2A32A4907@CORPUSMX90B.corp.emc.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: linux-fsdevel@vger.kernel.org To: Niu_Yawei@emc.com Return-path: Received: from mail-bw0-f161.google.com ([209.85.218.161]:42756 "EHLO mail-bw0-f161.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752440AbZBPJDI (ORCPT ); Mon, 16 Feb 2009 04:03:08 -0500 Received: by bwz5 with SMTP id 5so2922735bwz.13 for ; Mon, 16 Feb 2009 01:03:06 -0800 (PST) In-Reply-To: <7659DC78F120014CAC3C03E93F3DC2A32A4907@CORPUSMX90B.corp.emc.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hello, 2009/2/16 : >> 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