Actually, there is no reason about why a user must umount and mount a XFS filesystem to enable 'inode64' option. So, this patch makes this a remountable option. Signed-off-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> --- fs/xfs/xfs_super.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index bdaf4cb..4dad567 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -120,12 +120,13 @@ mempool_t *xfs_ioend_pool; * in the future, too. */ enum { - Opt_barrier, Opt_nobarrier, Opt_err + Opt_barrier, Opt_nobarrier, Opt_inode64, Opt_err }; static const match_table_t tokens = { {Opt_barrier, "barrier"}, {Opt_nobarrier, "nobarrier"}, + {Opt_inode64, "inode64"}, {Opt_err, NULL} }; @@ -1038,11 +1039,15 @@ xfs_fs_remount( { struct xfs_mount *mp = XFS_M(sb); substring_t args[MAX_OPT_ARGS]; + xfs_sb_t *sbp = &(mp->m_sb); + xfs_perag_t *pag; char *p; int error; while ((p = strsep(&options, ",")) != NULL) { int token; + int agcount = sbp->sb_agcount; + int index = 0; if (!*p) continue; @@ -1055,6 +1060,17 @@ xfs_fs_remount( case Opt_nobarrier: mp->m_flags &= ~XFS_MOUNT_BARRIER; break; + case Opt_inode64: + + for (index = 0; index < agcount; index++) { + pag = xfs_perag_get(mp, index); + pag->pagi_inodeok = 1; + xfs_perag_put(pag); + } + mp->m_flags &= ~XFS_MOUNT_32BITINODES; + mp->m_flags &= ~XFS_MOUNT_SMALL_INUMS; + mp->m_maxagi = index; + break; default: /* * Logically we would return an error here to prevent -- 1.7.11.2 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs