|
|
| version 1.538, 2007/09/11 06:12:43 | version 1.539, 2007/09/13 16:22:42 |
|---|---|
| Line 1610 xfs_parseargs( | Line 1610 xfs_parseargs( |
| char *this_char, *value, *eov; | char *this_char, *value, *eov; |
| int dsunit, dswidth, vol_dsunit, vol_dswidth; | int dsunit, dswidth, vol_dsunit, vol_dswidth; |
| int iosize; | int iosize; |
| int ikeep = 0; | |
| /* | |
| * 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; | |
| args->flags |= XFSMNT_BARRIER; | args->flags |= XFSMNT_BARRIER; |
| args->flags2 |= XFSMNT2_COMPAT_IOSIZE; | args->flags2 |= XFSMNT2_COMPAT_IOSIZE; |
| Line 1752 xfs_parseargs( | Line 1741 xfs_parseargs( |
| } else if (!strcmp(this_char, MNTOPT_NOBARRIER)) { | } else if (!strcmp(this_char, MNTOPT_NOBARRIER)) { |
| args->flags &= ~XFSMNT_BARRIER; | args->flags &= ~XFSMNT_BARRIER; |
| } else if (!strcmp(this_char, MNTOPT_IKEEP)) { | } else if (!strcmp(this_char, MNTOPT_IKEEP)) { |
| ikeep = 1; | |
| args->flags &= ~XFSMNT_IDELETE; | args->flags &= ~XFSMNT_IDELETE; |
| } else if (!strcmp(this_char, MNTOPT_NOIKEEP)) { | } else if (!strcmp(this_char, MNTOPT_NOIKEEP)) { |
| args->flags |= XFSMNT_IDELETE; | args->flags |= XFSMNT_IDELETE; |
| Line 1850 xfs_parseargs( | Line 1840 xfs_parseargs( |
| return EINVAL; | 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 ((args->flags & XFSMNT_NOALIGN) != XFSMNT_NOALIGN) { |
| if (dsunit) { | if (dsunit) { |
| args->sunit = dsunit; | args->sunit = dsunit; |