Re: [RFC PATCH] ext4: Fix the locking with respect to ext3 to ext4 migrate.

Andreas Dilger
2008-03-12T08:57:37Z

On Mar 11, 2008 22:28 +0530, Aneesh Kumar K.V wrote:
> On Tue, Mar 11, 2008 at 04:25:37PM +0100, Jan Kara wrote:
> > I agree here. IMHO the better option would be to just build the
> > extent-tree for converted inode on best-effort basis. If we find in
> > the end that someone has allocated new block to the file (via mmap
> > filling a hole) while we are converting, we can just cancel the
> > conversion. Because I think the cost of extra rwsem (both in terms of
> > additional memory needed for each inode structure and in time needed for
> > rwsem acquisitions) is more than I as a user would like to bear given
> > how rare the conversion is.
>
> Something like the below ??
>
> down_write(&EXT4_I(inode)->i_data_sem);
> + /* check for number of blocks */
> + if (total_blocks != inode->i_blocks) {
> + retval = -EAGAIN;
> + up_write(&EXT4_I(inode)->i_data_sem);
> + goto err_out;

Is this enough, or should we use the inode version instead?

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.