[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071219003745.GR4396912@sgi.com>
Date: Wed, 19 Dec 2007 11:37:45 +1100
From: David Chinner <dgc@....com>
To: Christoph Hellwig <hch@...radead.org>
Cc: Bret Towe <magnade@...il.com>, linux-kernel@...r.kernel.org,
xfs@....sgi.com, rjw@...k.pl
Subject: Re: xfs mknod regression
On Tue, Dec 18, 2007 at 05:36:42PM +0000, Christoph Hellwig wrote:
>
> This was broken by my '[XFS] simplify xfs_create/mknod/symlink prototype',
> which assigned the re-shuffled ondisk dev_t back to the rdev variable in
> xfs_vn_mknod. Because of that i_rdev is set to the ondisk dev_t instead
> of the linux dev_t later down the function.
>
> Fortunately the fix for it is trivial: we can just remove the
> assignment because xfs_revalidate_inode has done the proper job before
> unlocking the inode.
>
>
> Signed-off-by: Christoph Hellwig <hch@....de>
>
> Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2007-12-18 18:23:32.000000000 +0100
> +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c 2007-12-18 18:23:43.000000000 +0100
> @@ -345,9 +345,7 @@ xfs_vn_mknod(
> ASSERT(vp);
> ip = vn_to_inode(vp);
>
> - if (S_ISCHR(mode) || S_ISBLK(mode))
> - ip->i_rdev = rdev;
> - else if (S_ISDIR(mode))
> + if (S_ISDIR(mode))
> xfs_validate_fields(ip);
> d_instantiate(dentry, ip);
> xfs_validate_fields(dir);
Thanks for this, Christoph - I'll run some tests on it and check it in.
Rafael - this is a regression introduced in 2.6.24-rc1 if you want to
track it.
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists