Commit bd186aa901c183d6e25257711b6c64b42a90dde0

Authored by Christoph Hellwig
Committed by Tim Shimmin
1 parent 0ce4cfd4f7

[XFS] kill the vfs_flags member in struct bhv_vfs

All flags are added to xfs_mount's m_flag instead. Note that the 32bit
inode flag was duplicated in both of them, but only cleared in the mount
when it was not nessecary due to the filesystem beeing small enough. Two
flags are still required here - one to indicate the mount option setting,
and one to indicate if it applies or not.

SGI-PV: 969608
SGI-Modid: xfs-linux-melb:xfs-kern:29507a

Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>

Showing 16 changed files with 59 additions and 76 deletions Side-by-side Diff

fs/xfs/linux-2.6/xfs_export.c
... ... @@ -102,9 +102,7 @@
102 102 int len;
103 103 int is64 = 0;
104 104 #if XFS_BIG_INUMS
105   - bhv_vfs_t *vfs = vfs_from_sb(inode->i_sb);
106   -
107   - if (!(vfs->vfs_flag & VFS_32BITINODES)) {
  105 + if (!(XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_SMALL_INUMS)) {
108 106 /* filesystem may contain 64bit inode numbers */
109 107 is64 = XFS_FILEID_TYPE_64FLAG;
110 108 }
fs/xfs/linux-2.6/xfs_file.c
... ... @@ -259,7 +259,7 @@
259 259 vma->vm_flags |= VM_CAN_NONLINEAR;
260 260  
261 261 #ifdef CONFIG_XFS_DMAPI
262   - if (vfs_from_sb(filp->f_path.dentry->d_inode->i_sb)->vfs_flag & VFS_DMI)
  262 + if (XFS_M(filp->f_path.dentry->d_inode->i_sb)->m_flags & XFS_MOUNT_DMAPI)
263 263 vma->vm_ops = &xfs_dmapi_file_vm_ops;
264 264 #endif /* CONFIG_XFS_DMAPI */
265 265  
266 266  
267 267  
... ... @@ -317,13 +317,13 @@
317 317 unsigned int newflags)
318 318 {
319 319 struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
320   - bhv_vfs_t *vfsp = vfs_from_sb(inode->i_sb);
  320 + struct xfs_mount *mp = XFS_M(inode->i_sb);
321 321 int error = 0;
322 322  
323   - if (vfsp->vfs_flag & VFS_DMI) {
  323 + if (mp->m_flags & XFS_MOUNT_DMAPI) {
324 324 if ((vma->vm_flags & VM_MAYSHARE) &&
325 325 (newflags & VM_WRITE) && !(vma->vm_flags & VM_WRITE))
326   - error = XFS_SEND_MMAP(XFS_VFSTOM(vfsp), vma, VM_WRITE);
  326 + error = XFS_SEND_MMAP(mp, vma, VM_WRITE);
327 327 }
328 328 return error;
329 329 }
330 330  
331 331  
... ... @@ -340,13 +340,13 @@
340 340 xfs_file_open_exec(
341 341 struct inode *inode)
342 342 {
343   - bhv_vfs_t *vfsp = vfs_from_sb(inode->i_sb);
  343 + struct xfs_mount *mp = XFS_M(inode->i_sb);
344 344  
345   - if (unlikely(vfsp->vfs_flag & VFS_DMI)) {
  345 + if (unlikely(mp->m_flags & XFS_MOUNT_DMAPI)) {
346 346 if (DM_EVENT_ENABLED(XFS_I(inode), DM_EVENT_READ)) {
347 347 bhv_vnode_t *vp = vn_from_inode(inode);
348 348  
349   - return -XFS_SEND_DATA(XFS_VFSTOM(vfsp), DM_EVENT_READ,
  349 + return -XFS_SEND_DATA(mp, DM_EVENT_READ,
350 350 vp, 0, 0, 0, NULL);
351 351 }
352 352 }
fs/xfs/linux-2.6/xfs_super.c
... ... @@ -534,7 +534,7 @@
534 534 {
535 535 int error;
536 536  
537   - if (!(vfsp->vfs_flag & VFS_RDONLY))
  537 + if (!(XFS_VFSTOM(vfsp)->m_flags & XFS_MOUNT_RDONLY))
538 538 error = xfs_sync(XFS_VFSTOM(vfsp), SYNC_FSDATA | SYNC_BDFLUSH | \
539 539 SYNC_ATTR | SYNC_REFCACHE | SYNC_SUPER);
540 540 vfsp->vfs_sync_seq++;
... ... @@ -792,6 +792,9 @@
792 792 mp = xfs_mount_init();
793 793 mp->m_vfsp = vfsp;
794 794 vfsp->vfs_mount = mp;
  795 +
  796 + if (sb->s_flags & MS_RDONLY)
  797 + mp->m_flags |= XFS_MOUNT_RDONLY;
795 798  
796 799 error = xfs_parseargs(mp, (char *)data, args, 0);
797 800 if (error)
fs/xfs/linux-2.6/xfs_vfs.c
... ... @@ -211,9 +211,6 @@
211 211 vfsp->vfs_super = sb;
212 212 sb->s_fs_info = vfsp;
213 213  
214   - if (sb->s_flags & MS_RDONLY)
215   - vfsp->vfs_flag |= VFS_RDONLY;
216   -
217 214 return vfsp;
218 215 }
219 216  
fs/xfs/linux-2.6/xfs_vfs.h
... ... @@ -43,7 +43,6 @@
43 43  
44 44 typedef struct bhv_vfs {
45 45 struct xfs_mount *vfs_mount;
46   - u_int vfs_flag; /* flags */
47 46 struct super_block *vfs_super; /* generic superblock pointer */
48 47 struct task_struct *vfs_sync_task; /* generalised sync thread */
49 48 bhv_vfs_sync_work_t vfs_sync_work; /* work item for VFS_SYNC */
... ... @@ -52,13 +51,6 @@
52 51 int vfs_sync_seq; /* sync thread generation no. */
53 52 wait_queue_head_t vfs_wait_single_sync_task;
54 53 } bhv_vfs_t;
55   -
56   -#define VFS_RDONLY 0x0001 /* read-only vfs */
57   -#define VFS_GRPID 0x0002 /* group-ID assigned from directory */
58   -#define VFS_DMI 0x0004 /* filesystem has the DMI enabled */
59   -/* ---- VFS_UMOUNT ---- 0x0008 -- unneeded, fixed via kthread APIs */
60   -#define VFS_32BITINODES 0x0010 /* do not use inums above 32 bits */
61   -#define VFS_END 0x0010 /* max flag */
62 54  
63 55 #define SYNC_ATTR 0x0001 /* sync attributes */
64 56 #define SYNC_CLOSE 0x0002 /* close file system down */
fs/xfs/quota/xfs_qm.c
... ... @@ -2417,8 +2417,7 @@
2417 2417 lockflags = XFS_ILOCK_EXCL;
2418 2418 xfs_ilock(ip, lockflags);
2419 2419  
2420   - if ((flags & XFS_QMOPT_INHERIT) &&
2421   - XFS_INHERIT_GID(ip, XFS_MTOVFS(mp)))
  2420 + if ((flags & XFS_QMOPT_INHERIT) && XFS_INHERIT_GID(ip))
2422 2421 gid = ip->i_d.di_gid;
2423 2422  
2424 2423 /*
fs/xfs/quota/xfs_qm_syscalls.c
... ... @@ -86,10 +86,8 @@
86 86 int id,
87 87 xfs_caddr_t addr)
88 88 {
89   - bhv_vfs_t *vfsp = XFS_MTOVFS(mp);
90 89 int error;
91 90  
92   -
93 91 ASSERT(addr != NULL || cmd == Q_XQUOTASYNC);
94 92  
95 93 /*
... ... @@ -102,7 +100,7 @@
102 100 */
103 101 if (XFS_IS_QUOTA_ON(mp))
104 102 return XFS_ERROR(EINVAL);
105   - if (vfsp->vfs_flag & VFS_RDONLY)
  103 + if (mp->m_flags & XFS_MOUNT_RDONLY)
106 104 return XFS_ERROR(EROFS);
107 105 return (xfs_qm_scall_trunc_qfiles(mp,
108 106 xfs_qm_import_qtype_flags(*(uint *)addr)));
109 107  
... ... @@ -118,13 +116,13 @@
118 116 * QUOTAON - enabling quota enforcement.
119 117 * Quota accounting must be turned on at mount time.
120 118 */
121   - if (vfsp->vfs_flag & VFS_RDONLY)
  119 + if (mp->m_flags & XFS_MOUNT_RDONLY)
122 120 return XFS_ERROR(EROFS);
123 121 return (xfs_qm_scall_quotaon(mp,
124 122 xfs_qm_import_flags(*(uint *)addr)));
125 123  
126 124 case Q_XQUOTAOFF:
127   - if (vfsp->vfs_flag & VFS_RDONLY)
  125 + if (mp->m_flags & XFS_MOUNT_RDONLY)
128 126 return XFS_ERROR(EROFS);
129 127 break;
130 128  
... ... @@ -140,7 +138,7 @@
140 138  
141 139 switch (cmd) {
142 140 case Q_XQUOTAOFF:
143   - if (vfsp->vfs_flag & VFS_RDONLY)
  141 + if (mp->m_flags & XFS_MOUNT_RDONLY)
144 142 return XFS_ERROR(EROFS);
145 143 error = xfs_qm_scall_quotaoff(mp,
146 144 xfs_qm_import_flags(*(uint *)addr),
147 145  
148 146  
... ... @@ -161,19 +159,19 @@
161 159 break;
162 160  
163 161 case Q_XSETQLIM:
164   - if (vfsp->vfs_flag & VFS_RDONLY)
  162 + if (mp->m_flags & XFS_MOUNT_RDONLY)
165 163 return XFS_ERROR(EROFS);
166 164 error = xfs_qm_scall_setqlim(mp, (xfs_dqid_t)id, XFS_DQ_USER,
167 165 (fs_disk_quota_t *)addr);
168 166 break;
169 167 case Q_XSETGQLIM:
170   - if (vfsp->vfs_flag & VFS_RDONLY)
  168 + if (mp->m_flags & XFS_MOUNT_RDONLY)
171 169 return XFS_ERROR(EROFS);
172 170 error = xfs_qm_scall_setqlim(mp, (xfs_dqid_t)id, XFS_DQ_GROUP,
173 171 (fs_disk_quota_t *)addr);
174 172 break;
175 173 case Q_XSETPQLIM:
176   - if (vfsp->vfs_flag & VFS_RDONLY)
  174 + if (mp->m_flags & XFS_MOUNT_RDONLY)
177 175 return XFS_ERROR(EROFS);
178 176 error = xfs_qm_scall_setqlim(mp, (xfs_dqid_t)id, XFS_DQ_PROJ,
179 177 (fs_disk_quota_t *)addr);
... ... @@ -69,7 +69,7 @@
69 69 /* Defines for determining if an event message should be sent. */
70 70 #ifdef HAVE_DMAPI
71 71 #define DM_EVENT_ENABLED(ip, event) ( \
72   - unlikely (XFS_MTOVFS((ip)->i_mount)->vfs_flag & VFS_DMI) && \
  72 + unlikely ((ip)->i_mount->m_flags & XFS_MOUNT_DMAPI) && \
73 73 ( ((ip)->i_d.di_dmevmask & (1 << event)) || \
74 74 ((ip)->i_mount->m_dmevmask & (1 << event)) ) \
75 75 )
... ... @@ -1158,7 +1158,7 @@
1158 1158 if ((prid != 0) && (ip->i_d.di_version == XFS_DINODE_VERSION_1))
1159 1159 xfs_bump_ino_vers2(tp, ip);
1160 1160  
1161   - if (pip && XFS_INHERIT_GID(pip, XFS_MTOVFS(pip->i_mount))) {
  1161 + if (pip && XFS_INHERIT_GID(pip)) {
1162 1162 ip->i_d.di_gid = pip->i_d.di_gid;
1163 1163 if ((pip->i_d.di_mode & S_ISGID) && (mode & S_IFMT) == S_IFDIR) {
1164 1164 ip->i_d.di_mode |= S_ISGID;
... ... @@ -492,8 +492,9 @@
492 492 * directory, group of new file is set to that of the parent, and
493 493 * new subdirectory gets S_ISGID bit from parent.
494 494 */
495   -#define XFS_INHERIT_GID(pip, vfsp) \
496   - (((vfsp)->vfs_flag & VFS_GRPID) || ((pip)->i_d.di_mode & S_ISGID))
  495 +#define XFS_INHERIT_GID(pip) \
  496 + (((pip)->i_mount->m_flags & XFS_MOUNT_GRPID) || \
  497 + ((pip)->i_d.di_mode & S_ISGID))
497 498  
498 499 /*
499 500 * Flags for xfs_iget()
... ... @@ -486,7 +486,7 @@
486 486 cmn_err(CE_NOTE,
487 487 "!Mounting filesystem \"%s\" in no-recovery mode. Filesystem will be inconsistent.",
488 488 mp->m_fsname);
489   - ASSERT(XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY);
  489 + ASSERT(mp->m_flags & XFS_MOUNT_RDONLY);
490 490 }
491 491  
492 492 mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks);
493 493  
494 494  
... ... @@ -496,16 +496,15 @@
496 496 * just worked.
497 497 */
498 498 if (!(mp->m_flags & XFS_MOUNT_NORECOVERY)) {
499   - bhv_vfs_t *vfsp = XFS_MTOVFS(mp);
500   - int error, readonly = (vfsp->vfs_flag & VFS_RDONLY);
  499 + int error, readonly = (mp->m_flags & XFS_MOUNT_RDONLY);
501 500  
502 501 if (readonly)
503   - vfsp->vfs_flag &= ~VFS_RDONLY;
  502 + mp->m_flags &= ~XFS_MOUNT_RDONLY;
504 503  
505 504 error = xlog_recover(mp->m_log);
506 505  
507 506 if (readonly)
508   - vfsp->vfs_flag |= VFS_RDONLY;
  507 + mp->m_flags |= XFS_MOUNT_RDONLY;
509 508 if (error) {
510 509 cmn_err(CE_WARN, "XFS: log mount/recovery failed: error %d", error);
511 510 xlog_dealloc_log(mp->m_log);
... ... @@ -537,7 +536,7 @@
537 536 error = xlog_recover_finish(mp->m_log, mfsi_flags);
538 537 else {
539 538 error = 0;
540   - ASSERT(XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY);
  539 + ASSERT(mp->m_flags & XFS_MOUNT_RDONLY);
541 540 }
542 541  
543 542 return error;
... ... @@ -597,7 +596,7 @@
597 596 * Don't write out unmount record on read-only mounts.
598 597 * Or, if we are doing a forced umount (typically because of IO errors).
599 598 */
600   - if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY)
  599 + if (mp->m_flags & XFS_MOUNT_RDONLY)
601 600 return 0;
602 601  
603 602 xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC);
... ... @@ -359,7 +359,7 @@
359 359 /* Clear the mount flag if no inode can overflow 32 bits
360 360 * on this filesystem, or if specifically requested..
361 361 */
362   - if ((vfs->vfs_flag & VFS_32BITINODES) && ino > max_inum) {
  362 + if ((mp->m_flags & XFS_MOUNT_SMALL_INUMS) && ino > max_inum) {
363 363 mp->m_flags |= XFS_MOUNT_32BITINODES;
364 364 } else {
365 365 mp->m_flags &= ~XFS_MOUNT_32BITINODES;
... ... @@ -1116,7 +1116,7 @@
1116 1116 * If fs is not mounted readonly, then update the superblock
1117 1117 * unit and width changes.
1118 1118 */
1119   - if (update_flags && !(vfsp->vfs_flag & VFS_RDONLY))
  1119 + if (update_flags && !(mp->m_flags & XFS_MOUNT_RDONLY))
1120 1120 xfs_mount_log_sbunit(mp, update_flags);
1121 1121  
1122 1122 /*
... ... @@ -1289,7 +1289,7 @@
1289 1289 bhv_vfs_t *vfsp = XFS_MTOVFS(mp);
1290 1290  
1291 1291 return !(vfs_test_for_freeze(vfsp) || XFS_FORCED_SHUTDOWN(mp) ||
1292   - (vfsp->vfs_flag & VFS_RDONLY));
  1292 + (mp->m_flags & XFS_MOUNT_RDONLY));
1293 1293 }
1294 1294  
1295 1295 /*
... ... @@ -1367,7 +1367,7 @@
1367 1367 * skip superblock write if fs is read-only, or
1368 1368 * if we are doing a forced umount.
1369 1369 */
1370   - if (!(XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY ||
  1370 + if (!((mp->m_flags & XFS_MOUNT_RDONLY) ||
1371 1371 XFS_FORCED_SHUTDOWN(mp))) {
1372 1372  
1373 1373 sbp = xfs_getsb(mp, 0);
... ... @@ -442,7 +442,7 @@
442 442 must be synchronous except
443 443 for space allocations */
444 444 #define XFS_MOUNT_INO64 (1ULL << 1)
445   - /* (1ULL << 2) -- currently unused */
  445 +#define XFS_MOUNT_DMAPI (1ULL << 2) /* dmapi is enabled */
446 446 #define XFS_MOUNT_WAS_CLEAN (1ULL << 3)
447 447 #define XFS_MOUNT_FS_SHUTDOWN (1ULL << 4) /* atomic stop of all filesystem
448 448 operations, typically for
... ... @@ -452,7 +452,7 @@
452 452 #define XFS_MOUNT_NOALIGN (1ULL << 7) /* turn off stripe alignment
453 453 allocations */
454 454 #define XFS_MOUNT_ATTR2 (1ULL << 8) /* allow use of attr2 format */
455   - /* (1ULL << 9) -- currently unused */
  455 +#define XFS_MOUNT_GRPID (1ULL << 9) /* group-ID assigned from directory */
456 456 #define XFS_MOUNT_NORECOVERY (1ULL << 10) /* no recovery - dirty fs */
457 457 #define XFS_MOUNT_SHARED (1ULL << 11) /* shared mount */
458 458 #define XFS_MOUNT_DFLT_IOSIZE (1ULL << 12) /* set default i/o size */
459 459  
... ... @@ -460,13 +460,13 @@
460 460 /* osyncisdsync is now default*/
461 461 #define XFS_MOUNT_32BITINODES (1ULL << 14) /* do not create inodes above
462 462 * 32 bits in size */
463   - /* (1ULL << 15) -- currently unused */
  463 +#define XFS_MOUNT_SMALL_INUMS (1ULL << 15) /* users wants 32bit inodes */
464 464 #define XFS_MOUNT_NOUUID (1ULL << 16) /* ignore uuid during mount */
465 465 #define XFS_MOUNT_BARRIER (1ULL << 17)
466 466 #define XFS_MOUNT_IDELETE (1ULL << 18) /* delete empty inode clusters*/
467 467 #define XFS_MOUNT_SWALLOC (1ULL << 19) /* turn on stripe width
468 468 * allocation */
469   - /* (1ULL << 20) -- currently unused */
  469 +#define XFS_MOUNT_RDONLY (1ULL << 20) /* read-only fs */
470 470 #define XFS_MOUNT_DIRSYNC (1ULL << 21) /* synchronous directory ops */
471 471 #define XFS_MOUNT_COMPAT_IOSIZE (1ULL << 22) /* don't report large preferred
472 472 * I/O size in stat() */
... ... @@ -66,7 +66,7 @@
66 66 * if the fs is readonly, let the incore superblock run
67 67 * with quotas off but don't flush the update out to disk
68 68 */
69   - if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY)
  69 + if (mp->m_flags & XFS_MOUNT_RDONLY)
70 70 return 0;
71 71 #ifdef QUOTADEBUG
72 72 xfs_fs_cmn_err(CE_NOTE, mp, "Writing superblock quota changes");
... ... @@ -307,7 +307,7 @@
307 307 * no recovery flag requires a read-only mount
308 308 */
309 309 if (ap->flags & XFSMNT_NORECOVERY) {
310   - if (!(vfs->vfs_flag & VFS_RDONLY)) {
  310 + if (!(mp->m_flags & XFS_MOUNT_RDONLY)) {
311 311 cmn_err(CE_WARN,
312 312 "XFS: tried to mount a FS read-write without recovery!");
313 313 return XFS_ERROR(EINVAL);
... ... @@ -326,7 +326,7 @@
326 326 mp->m_flags |= XFS_MOUNT_FILESTREAMS;
327 327  
328 328 if (ap->flags & XFSMNT_DMAPI)
329   - vfs->vfs_flag |= VFS_DMI;
  329 + mp->m_flags |= XFS_MOUNT_DMAPI;
330 330 return 0;
331 331 }
332 332  
... ... @@ -340,7 +340,7 @@
340 340 struct xfs_mount_args *ap,
341 341 struct xfs_mount *mp)
342 342 {
343   - int ronly = (vfs->vfs_flag & VFS_RDONLY);
  343 + int ronly = (mp->m_flags & XFS_MOUNT_RDONLY);
344 344  
345 345 /* Fail a mount where the logbuf is smaller then the log stripe */
346 346 if (XFS_SB_VERSION_HASLOGV2(&mp->m_sb)) {
... ... @@ -589,7 +589,7 @@
589 589 rvp = XFS_ITOV(rip);
590 590  
591 591 #ifdef HAVE_DMAPI
592   - if (vfsp->vfs_flag & VFS_DMI) {
  592 + if (mp->m_flags & XFS_MOUNT_DMAPI) {
593 593 error = XFS_SEND_PREUNMOUNT(mp, vfsp,
594 594 rvp, DM_RIGHT_NULL, rvp, DM_RIGHT_NULL,
595 595 NULL, NULL, 0, 0,
596 596  
597 597  
598 598  
... ... @@ -723,22 +723,20 @@
723 723 int *flags,
724 724 struct xfs_mount_args *args)
725 725 {
726   - struct bhv_vfs *vfsp = XFS_MTOVFS(mp);
727   -
728 726 if (!(*flags & MS_RDONLY)) { /* rw/ro -> rw */
729   - if (vfsp->vfs_flag & VFS_RDONLY)
730   - vfsp->vfs_flag &= ~VFS_RDONLY;
  727 + if (mp->m_flags & XFS_MOUNT_RDONLY)
  728 + mp->m_flags &= ~XFS_MOUNT_RDONLY;
731 729 if (args->flags & XFSMNT_BARRIER) {
732 730 mp->m_flags |= XFS_MOUNT_BARRIER;
733 731 xfs_mountfs_check_barriers(mp);
734 732 } else {
735 733 mp->m_flags &= ~XFS_MOUNT_BARRIER;
736 734 }
737   - } else if (!(vfsp->vfs_flag & VFS_RDONLY)) { /* rw -> ro */
  735 + } else if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { /* rw -> ro */
738 736 xfs_filestream_flush(mp);
739 737 xfs_sync(mp, SYNC_DATA_QUIESCE);
740 738 xfs_attr_quiesce(mp);
741   - vfsp->vfs_flag |= VFS_RDONLY;
  739 + mp->m_flags |= XFS_MOUNT_RDONLY;
742 740 }
743 741 return 0;
744 742 }
... ... @@ -1053,7 +1051,7 @@
1053 1051  
1054 1052 if (bypassed)
1055 1053 *bypassed = 0;
1056   - if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY)
  1054 + if (mp->m_flags & XFS_MOUNT_RDONLY)
1057 1055 return 0;
1058 1056 error = 0;
1059 1057 last_error = 0;
... ... @@ -1766,7 +1764,6 @@
1766 1764 struct xfs_mount_args *args,
1767 1765 int update)
1768 1766 {
1769   - bhv_vfs_t *vfsp = XFS_MTOVFS(mp);
1770 1767 char *this_char, *value, *eov;
1771 1768 int dsunit, dswidth, vol_dsunit, vol_dswidth;
1772 1769 int iosize;
1773 1770  
... ... @@ -1859,10 +1856,10 @@
1859 1856 args->iosizelog = ffs(iosize) - 1;
1860 1857 } else if (!strcmp(this_char, MNTOPT_GRPID) ||
1861 1858 !strcmp(this_char, MNTOPT_BSDGROUPS)) {
1862   - vfsp->vfs_flag |= VFS_GRPID;
  1859 + mp->m_flags |= XFS_MOUNT_GRPID;
1863 1860 } else if (!strcmp(this_char, MNTOPT_NOGRPID) ||
1864 1861 !strcmp(this_char, MNTOPT_SYSVGROUPS)) {
1865   - vfsp->vfs_flag &= ~VFS_GRPID;
  1862 + mp->m_flags &= ~XFS_MOUNT_GRPID;
1866 1863 } else if (!strcmp(this_char, MNTOPT_WSYNC)) {
1867 1864 args->flags |= XFSMNT_WSYNC;
1868 1865 } else if (!strcmp(this_char, MNTOPT_OSYNCISOSYNC)) {
... ... @@ -1972,7 +1969,7 @@
1972 1969 }
1973 1970  
1974 1971 if (args->flags & XFSMNT_NORECOVERY) {
1975   - if ((vfsp->vfs_flag & VFS_RDONLY) == 0) {
  1972 + if ((mp->m_flags & XFS_MOUNT_RDONLY) == 0) {
1976 1973 cmn_err(CE_WARN,
1977 1974 "XFS: no-recovery mounts must be read-only.");
1978 1975 return EINVAL;
... ... @@ -2025,7 +2022,7 @@
2025 2022  
2026 2023 done:
2027 2024 if (args->flags & XFSMNT_32BITINODES)
2028   - vfsp->vfs_flag |= VFS_32BITINODES;
  2025 + mp->m_flags |= XFS_MOUNT_SMALL_INUMS;
2029 2026 if (args->flags2)
2030 2027 args->flags |= XFSMNT_FLAGS2;
2031 2028 return 0;
... ... @@ -2051,7 +2048,6 @@
2051 2048 { 0, NULL }
2052 2049 };
2053 2050 struct proc_xfs_info *xfs_infop;
2054   - struct bhv_vfs *vfsp = XFS_MTOVFS(mp);
2055 2051  
2056 2052 for (xfs_infop = xfs_info; xfs_infop->flag; xfs_infop++) {
2057 2053 if (mp->m_flags & xfs_infop->flag)
2058 2054  
... ... @@ -2084,9 +2080,9 @@
2084 2080 if (!(mp->m_flags & XFS_MOUNT_COMPAT_IOSIZE))
2085 2081 seq_printf(m, "," MNTOPT_LARGEIO);
2086 2082  
2087   - if (!(vfsp->vfs_flag & VFS_32BITINODES))
  2083 + if (!(mp->m_flags & XFS_MOUNT_SMALL_INUMS))
2088 2084 seq_printf(m, "," MNTOPT_64BITINODE);
2089   - if (vfsp->vfs_flag & VFS_GRPID)
  2085 + if (mp->m_flags & XFS_MOUNT_GRPID)
2090 2086 seq_printf(m, "," MNTOPT_GRPID);
2091 2087  
2092 2088 if (mp->m_qflags & XFS_UQUOTA_ACCT) {
... ... @@ -2113,7 +2109,7 @@
2113 2109 if (!(mp->m_qflags & XFS_ALL_QUOTA_ACCT))
2114 2110 seq_puts(m, "," MNTOPT_NOQUOTA);
2115 2111  
2116   - if (vfsp->vfs_flag & VFS_DMI)
  2112 + if (mp->m_flags & XFS_MOUNT_DMAPI)
2117 2113 seq_puts(m, "," MNTOPT_DMAPI);
2118 2114 return 0;
2119 2115 }
fs/xfs/xfs_vnodeops.c
... ... @@ -230,7 +230,7 @@
230 230  
231 231 vn_trace_entry(ip, __FUNCTION__, (inst_t *)__return_address);
232 232  
233   - if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY)
  233 + if (mp->m_flags & XFS_MOUNT_RDONLY)
234 234 return XFS_ERROR(EROFS);
235 235  
236 236 /*
... ... @@ -1515,7 +1515,7 @@
1515 1515 return 0;
1516 1516  
1517 1517 /* If this is a read-only mount, don't do this (would generate I/O) */
1518   - if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY)
  1518 + if (mp->m_flags & XFS_MOUNT_RDONLY)
1519 1519 return 0;
1520 1520  
1521 1521 if (!XFS_FORCED_SHUTDOWN(mp)) {
... ... @@ -1624,7 +1624,7 @@
1624 1624 error = 0;
1625 1625  
1626 1626 /* If this is a read-only mount, don't do this (would generate I/O) */
1627   - if (XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY)
  1627 + if (mp->m_flags & XFS_MOUNT_RDONLY)
1628 1628 goto out;
1629 1629  
1630 1630 if (ip->i_d.di_nlink != 0) {