[XFS] fix when DMAPI mount option processing happens
Fix for a regression caused by a recent patch that moved the DMAPI mount option processing inside xfs_parseargs(). The DMAPI mount option used to be processed in the DMAPI module loaded before xfs_parseargs() was invoked. SGI-PV: 970451 SGI-Modid: xfs-linux-melb:xfs-kern:29683a Signed-off-by: Vlad Apostolov <vapo@sgi.com> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
This commit is contained in:
Родитель
5903c4956f
Коммит
574342f4ad
|
@ -1763,18 +1763,7 @@ xfs_parseargs(
|
|||
char *this_char, *value, *eov;
|
||||
int dsunit, dswidth, vol_dsunit, vol_dswidth;
|
||||
int iosize;
|
||||
|
||||
/*
|
||||
* Applications using DMI filesystems often expect the
|
||||
* inode generation number to be monotonically increasing.
|
||||
* If we delete inode chunks we break this assumption, so
|
||||
* keep unused inode chunks on disk for DMI filesystems
|
||||
* until we come up with a better solution.
|
||||
* Note that if "ikeep" or "noikeep" mount options are
|
||||
* supplied, then they are honored.
|
||||
*/
|
||||
if (!(args->flags & XFSMNT_DMAPI))
|
||||
args->flags |= XFSMNT_IDELETE;
|
||||
int ikeep = 0;
|
||||
|
||||
args->flags |= XFSMNT_BARRIER;
|
||||
args->flags2 |= XFSMNT2_COMPAT_IOSIZE;
|
||||
|
@ -1905,6 +1894,7 @@ xfs_parseargs(
|
|||
} else if (!strcmp(this_char, MNTOPT_NOBARRIER)) {
|
||||
args->flags &= ~XFSMNT_BARRIER;
|
||||
} else if (!strcmp(this_char, MNTOPT_IKEEP)) {
|
||||
ikeep = 1;
|
||||
args->flags &= ~XFSMNT_IDELETE;
|
||||
} else if (!strcmp(this_char, MNTOPT_NOIKEEP)) {
|
||||
args->flags |= XFSMNT_IDELETE;
|
||||
|
@ -2003,6 +1993,18 @@ xfs_parseargs(
|
|||
return EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Applications using DMI filesystems often expect the
|
||||
* inode generation number to be monotonically increasing.
|
||||
* If we delete inode chunks we break this assumption, so
|
||||
* keep unused inode chunks on disk for DMI filesystems
|
||||
* until we come up with a better solution.
|
||||
* Note that if "ikeep" or "noikeep" mount options are
|
||||
* supplied, then they are honored.
|
||||
*/
|
||||
if (!(args->flags & XFSMNT_DMAPI) && !ikeep)
|
||||
args->flags |= XFSMNT_IDELETE;
|
||||
|
||||
if ((args->flags & XFSMNT_NOALIGN) != XFSMNT_NOALIGN) {
|
||||
if (dsunit) {
|
||||
args->sunit = dsunit;
|
||||
|
|
Загрузка…
Ссылка в новой задаче