aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2007-08-30 03:21:12 -0400
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-10-15 21:45:57 -0400
commitbd186aa901c183d6e25257711b6c64b42a90dde0 (patch)
treea84157145a249923a79276d7bc9170701b100c43 /fs/xfs/linux-2.6
parent0ce4cfd4f7dde5891d5b3e3c1a28ff7a7b4d36b3 (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.c4
-rw-r--r--fs/xfs/linux-2.6/xfs_file.c14
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c5
-rw-r--r--fs/xfs/linux-2.6/xfs_vfs.c3
-rw-r--r--fs/xfs/linux-2.6/xfs_vfs.h8
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
340xfs_file_open_exec( 340xfs_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
44typedef struct bhv_vfs { 44typedef 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 */