]> git.baikalelectronics.ru Git - kernel.git/commit
[XFS] If you mount an XFS filesystem with no mount options at all, then
authorJosef Jeff Sipek <jeffpc@josefsipek.net>
Fri, 29 Feb 2008 02:58:40 +0000 (13:58 +1100)
committerNiv Sardi <xaiki@oss.sgi.com>
Fri, 29 Feb 2008 04:37:56 +0000 (20:37 -0800)
commitbbf708803e43085e091b9a2df87573a61ad99f34
tree557463c5faac349791e14890f35668e4c1bcb639
parentc1f2a346ea985888b7b93b723888a67e91185fd7
[XFS] If you mount an XFS filesystem with no mount options at all, then
the "ikeep" option is set rather than "noikeep".

This regression was introduced in 970451.

With no mount options specified, xfs_parseargs() does the following:

int ikeep = 0;

args->flags |= XFSMNT_BARRIER;

args->flags2 |= XFSMNT2_COMPAT_IOSIZE;

if (!options)

goto done;

It only sets the above two options by default and before, it also used to
set XFSMNT_IDELETE by default.

If options are specified, then

if (!(args->flags & XFSMNT_DMAPI) && !ikeep)

args->flags |= XFSMNT_IDELETE;

is executed later on which is skipped by the "goto done;" above.

The solution is to invert the logic.

SGI-PV: 977771
SGI-Modid: xfs-linux-melb:xfs-kern:30590a

Signed-off-by: Niv Sardi <xaiki@sgi.com>
Signed-off-by: Barry Naujok <bnaujok@sgi.com>
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
fs/xfs/linux-2.6/xfs_super.c
fs/xfs/xfs_clnt.h
fs/xfs/xfs_ialloc.c
fs/xfs/xfs_mount.h
fs/xfs/xfs_vfsops.c