diff options
author | Christoph Hellwig <hch@infradead.org> | 2007-08-30 03:21:12 -0400 |
---|---|---|
committer | Tim Shimmin <tes@chook.melbourne.sgi.com> | 2007-10-15 21:45:57 -0400 |
commit | bd186aa901c183d6e25257711b6c64b42a90dde0 (patch) | |
tree | a84157145a249923a79276d7bc9170701b100c43 /fs/xfs/linux-2.6 | |
parent | 0ce4cfd4f7dde5891d5b3e3c1a28ff7a7b4d36b3 (diff) |
[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>
Diffstat (limited to 'fs/xfs/linux-2.6')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_export.c | 4 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_file.c | 14 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 5 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_vfs.c | 3 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_vfs.h | 8 |
5 files changed, 12 insertions, 22 deletions
diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index 4ed28a6767bb..726449d4fd22 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c | |||
@@ -102,9 +102,7 @@ xfs_fs_encode_fh( | |||
102 | int len; | 102 | int len; |
103 | int is64 = 0; | 103 | int is64 = 0; |
104 | #if XFS_BIG_INUMS | 104 | #if XFS_BIG_INUMS |
105 | bhv_vfs_t *vfs = vfs_from_sb(inode->i_sb); | 105 | if (!(XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_SMALL_INUMS)) { |
106 | |||
107 | if (!(vfs->vfs_flag & VFS_32BITINODES)) { | ||
108 | /* filesystem may contain 64bit inode numbers */ | 106 | /* filesystem may contain 64bit inode numbers */ |
109 | is64 = XFS_FILEID_TYPE_64FLAG; | 107 | is64 = XFS_FILEID_TYPE_64FLAG; |
110 | } | 108 | } |
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index 123659e74b53..fb8dd34041eb 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c | |||
@@ -259,7 +259,7 @@ xfs_file_mmap( | |||
259 | vma->vm_flags |= VM_CAN_NONLINEAR; | 259 | vma->vm_flags |= VM_CAN_NONLINEAR; |
260 | 260 | ||
261 | #ifdef CONFIG_XFS_DMAPI | 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 | vma->vm_ops = &xfs_dmapi_file_vm_ops; | 263 | vma->vm_ops = &xfs_dmapi_file_vm_ops; |
264 | #endif /* CONFIG_XFS_DMAPI */ | 264 | #endif /* CONFIG_XFS_DMAPI */ |
265 | 265 | ||
@@ -317,13 +317,13 @@ xfs_vm_mprotect( | |||
317 | unsigned int newflags) | 317 | unsigned int newflags) |
318 | { | 318 | { |
319 | struct inode *inode = vma->vm_file->f_path.dentry->d_inode; | 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 | int error = 0; | 321 | int error = 0; |
322 | 322 | ||
323 | if (vfsp->vfs_flag & VFS_DMI) { | 323 | if (mp->m_flags & XFS_MOUNT_DMAPI) { |
324 | if ((vma->vm_flags & VM_MAYSHARE) && | 324 | if ((vma->vm_flags & VM_MAYSHARE) && |
325 | (newflags & VM_WRITE) && !(vma->vm_flags & VM_WRITE)) | 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 | return error; | 328 | return error; |
329 | } | 329 | } |
@@ -340,13 +340,13 @@ STATIC int | |||
340 | xfs_file_open_exec( | 340 | xfs_file_open_exec( |
341 | struct inode *inode) | 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 | if (DM_EVENT_ENABLED(XFS_I(inode), DM_EVENT_READ)) { | 346 | if (DM_EVENT_ENABLED(XFS_I(inode), DM_EVENT_READ)) { |
347 | bhv_vnode_t *vp = vn_from_inode(inode); | 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 | vp, 0, 0, 0, NULL); | 350 | vp, 0, 0, 0, NULL); |
351 | } | 351 | } |
352 | } | 352 | } |
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 24bc0afb003c..e275b7a82bc1 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -534,7 +534,7 @@ vfs_sync_worker( | |||
534 | { | 534 | { |
535 | int error; | 535 | int error; |
536 | 536 | ||
537 | if (!(vfsp->vfs_flag & VFS_RDONLY)) | 537 | if (!(XFS_VFSTOM(vfsp)->m_flags & XFS_MOUNT_RDONLY)) |
538 | error = xfs_sync(XFS_VFSTOM(vfsp), SYNC_FSDATA | SYNC_BDFLUSH | \ | 538 | error = xfs_sync(XFS_VFSTOM(vfsp), SYNC_FSDATA | SYNC_BDFLUSH | \ |
539 | SYNC_ATTR | SYNC_REFCACHE | SYNC_SUPER); | 539 | SYNC_ATTR | SYNC_REFCACHE | SYNC_SUPER); |
540 | vfsp->vfs_sync_seq++; | 540 | vfsp->vfs_sync_seq++; |
@@ -793,6 +793,9 @@ xfs_fs_fill_super( | |||
793 | mp->m_vfsp = vfsp; | 793 | mp->m_vfsp = vfsp; |
794 | vfsp->vfs_mount = mp; | 794 | vfsp->vfs_mount = mp; |
795 | 795 | ||
796 | if (sb->s_flags & MS_RDONLY) | ||
797 | mp->m_flags |= XFS_MOUNT_RDONLY; | ||
798 | |||
796 | error = xfs_parseargs(mp, (char *)data, args, 0); | 799 | error = xfs_parseargs(mp, (char *)data, args, 0); |
797 | if (error) | 800 | if (error) |
798 | goto fail_vfsop; | 801 | goto fail_vfsop; |
diff --git a/fs/xfs/linux-2.6/xfs_vfs.c b/fs/xfs/linux-2.6/xfs_vfs.c index 573e52a24072..b098e0903353 100644 --- a/fs/xfs/linux-2.6/xfs_vfs.c +++ b/fs/xfs/linux-2.6/xfs_vfs.c | |||
@@ -211,9 +211,6 @@ vfs_allocate( | |||
211 | vfsp->vfs_super = sb; | 211 | vfsp->vfs_super = sb; |
212 | sb->s_fs_info = vfsp; | 212 | sb->s_fs_info = vfsp; |
213 | 213 | ||
214 | if (sb->s_flags & MS_RDONLY) | ||
215 | vfsp->vfs_flag |= VFS_RDONLY; | ||
216 | |||
217 | return vfsp; | 214 | return vfsp; |
218 | } | 215 | } |
219 | 216 | ||
diff --git a/fs/xfs/linux-2.6/xfs_vfs.h b/fs/xfs/linux-2.6/xfs_vfs.h index 943f581bdb47..5c4996356226 100644 --- a/fs/xfs/linux-2.6/xfs_vfs.h +++ b/fs/xfs/linux-2.6/xfs_vfs.h | |||
@@ -43,7 +43,6 @@ typedef struct bhv_vfs_sync_work { | |||
43 | 43 | ||
44 | typedef struct bhv_vfs { | 44 | typedef struct bhv_vfs { |
45 | struct xfs_mount *vfs_mount; | 45 | struct xfs_mount *vfs_mount; |
46 | u_int vfs_flag; /* flags */ | ||
47 | struct super_block *vfs_super; /* generic superblock pointer */ | 46 | struct super_block *vfs_super; /* generic superblock pointer */ |
48 | struct task_struct *vfs_sync_task; /* generalised sync thread */ | 47 | struct task_struct *vfs_sync_task; /* generalised sync thread */ |
49 | bhv_vfs_sync_work_t vfs_sync_work; /* work item for VFS_SYNC */ | 48 | bhv_vfs_sync_work_t vfs_sync_work; /* work item for VFS_SYNC */ |
@@ -53,13 +52,6 @@ typedef struct bhv_vfs { | |||
53 | wait_queue_head_t vfs_wait_single_sync_task; | 52 | wait_queue_head_t vfs_wait_single_sync_task; |
54 | } bhv_vfs_t; | 53 | } bhv_vfs_t; |
55 | 54 | ||
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 | |||
63 | #define SYNC_ATTR 0x0001 /* sync attributes */ | 55 | #define SYNC_ATTR 0x0001 /* sync attributes */ |
64 | #define SYNC_CLOSE 0x0002 /* close file system down */ | 56 | #define SYNC_CLOSE 0x0002 /* close file system down */ |
65 | #define SYNC_DELWRI 0x0004 /* look at delayed writes */ | 57 | #define SYNC_DELWRI 0x0004 /* look at delayed writes */ |