[Top] [All Lists]

Re: [PATCH 2/8] vfs: Protect write paths by sb_start_write - sb_end_writ

To: Jan Kara <jack@xxxxxxx>
Subject: Re: [PATCH 2/8] vfs: Protect write paths by sb_start_write - sb_end_write
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue, 24 Jan 2012 19:21:19 +1100
Cc: linux-fsdevel@xxxxxxxxxxxxxxx, Eric Sandeen <sandeen@xxxxxxxxxxx>, Dave Chinner <dchinner@xxxxxxxxxx>, Surbhi Palande <csurbhi@xxxxxxxxx>, Kamal Mostafa <kamal@xxxxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx
In-reply-to: <1327091686-23177-3-git-send-email-jack@xxxxxxx>
References: <1327091686-23177-1-git-send-email-jack@xxxxxxx> <1327091686-23177-3-git-send-email-jack@xxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, Jan 20, 2012 at 09:34:40PM +0100, Jan Kara wrote:
> There are three entry points which dirty pages in a filesystem.  mmap (handled
> by block_page_mkwrite()), buffered write (handled by
> __generic_file_aio_write()), and truncate (it can dirty last partial page -
> handled inside each filesystem separately). Protect these places with
> sb_start_write() and sb_end_write().

fallocate can also dirty pages, either during preallocation or hole
punching.  Hence if you are going to promote truncate to
SB_FREEZE_WRITE protection then you need to promote everything else
that can zero partial blocks as well.

That also means that anything the has implemented XFS_IOC_ ioctl
interfaces for prellocation and hole punching (xfs, ocfs2 and gfs2
IIRC) also needs to be protected in the same way.


Dave Chinner

<Prev in Thread] Current Thread [Next in Thread>