[PATCH 2/2] [RFC] sys_fstatat: Update file systems for new ->getattr callback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The previous patch changed the prototype of ->getattr by adding a flags
field. This patch updates individual file system implementations for the new
flags field.

Signed-off-by: Mark Fasheh <mfasheh@xxxxxxxx>
---
 fs/9p/vfs_inode.c          |    2 +-
 fs/afs/inode.c             |    2 +-
 fs/afs/internal.h          |    2 +-
 fs/btrfs/inode.c           |    2 +-
 fs/cifs/cifsfs.h           |    2 +-
 fs/cifs/inode.c            |    2 +-
 fs/coda/inode.c            |    2 +-
 fs/ext4/ext4.h             |    2 +-
 fs/ext4/inode.c            |    2 +-
 fs/fat/fat.h               |    2 +-
 fs/fat/file.c              |    3 ++-
 fs/fuse/dir.c              |    2 +-
 fs/gfs2/ops_inode.c        |    2 +-
 fs/minix/inode.c           |    2 +-
 fs/minix/minix.h           |    2 +-
 fs/nfs/inode.c             |    3 ++-
 fs/ocfs2/file.c            |    3 ++-
 fs/ocfs2/file.h            |    2 +-
 fs/proc/base.c             |    4 ++--
 fs/proc/generic.c          |    2 +-
 fs/proc/proc_net.c         |    2 +-
 fs/proc/proc_sysctl.c      |    2 +-
 fs/proc/root.c             |    2 +-
 fs/sysv/itree.c            |    2 +-
 fs/sysv/sysv.h             |    2 +-
 fs/ubifs/dir.c             |    2 +-
 fs/ubifs/ubifs.h           |    2 +-
 include/linux/coda_linux.h |    2 +-
 include/linux/nfs_fs.h     |    2 +-
 29 files changed, 33 insertions(+), 30 deletions(-)

diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index 81f8bbf..e14c502 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -737,7 +737,7 @@ done:
 
 static int
 v9fs_vfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		 struct kstat *stat)
+		 struct kstat *stat, int flags)
 {
 	int err;
 	struct v9fs_session_info *v9ses;
diff --git a/fs/afs/inode.c b/fs/afs/inode.c
index bb47217..b37d121 100644
--- a/fs/afs/inode.c
+++ b/fs/afs/inode.c
@@ -292,7 +292,7 @@ error_unlock:
  * read the attributes of an inode
  */
 int afs_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		      struct kstat *stat)
+		struct kstat *stat, int flags)
 {
 	struct inode *inode;
 
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 67f259d..dedad45 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -546,7 +546,7 @@ extern struct inode *afs_iget(struct super_block *, struct key *,
 			      struct afs_callback *);
 extern void afs_zap_data(struct afs_vnode *);
 extern int afs_validate(struct afs_vnode *, struct key *);
-extern int afs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
+extern int afs_getattr(struct vfsmount *, struct dentry *, struct kstat *, int);
 extern int afs_setattr(struct dentry *, struct iattr *);
 extern void afs_clear_inode(struct inode *);
 
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 7d4f948..6b79aec 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4563,7 +4563,7 @@ fail:
 }
 
 static int btrfs_getattr(struct vfsmount *mnt,
-			 struct dentry *dentry, struct kstat *stat)
+			 struct dentry *dentry, struct kstat *stat, int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	generic_fillattr(inode, stat);
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h
index 2b1d28a..7f40bbf 100644
--- a/fs/cifs/cifsfs.h
+++ b/fs/cifs/cifsfs.h
@@ -49,7 +49,7 @@ extern int cifs_rmdir(struct inode *, struct dentry *);
 extern int cifs_rename(struct inode *, struct dentry *, struct inode *,
 		       struct dentry *);
 extern int cifs_revalidate(struct dentry *);
-extern int cifs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
+extern int cifs_getattr(struct vfsmount *, struct dentry *, struct kstat *, int);
 extern int cifs_setattr(struct dentry *, struct iattr *);
 
 extern const struct inode_operations cifs_file_inode_ops;
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 4690a36..cd9efb5 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1599,7 +1599,7 @@ int cifs_revalidate(struct dentry *direntry)
 }
 
 int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry,
-	struct kstat *stat)
+		 struct kstat *stat, int flags)
 {
 	int err = cifs_revalidate(dentry);
 	if (!err) {
diff --git a/fs/coda/inode.c b/fs/coda/inode.c
index 830f51a..ebcfc86 100644
--- a/fs/coda/inode.c
+++ b/fs/coda/inode.c
@@ -220,7 +220,7 @@ static void coda_clear_inode(struct inode *inode)
 	coda_cache_clear_inode(inode);
 }
 
-int coda_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+int coda_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat, int flags)
 {
 	int err = coda_revalidate_inode(dentry);
 	if (!err)
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index b0c87dc..3eb9f1f 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1081,7 +1081,7 @@ extern struct inode *ext4_iget(struct super_block *, unsigned long);
 extern int  ext4_write_inode(struct inode *, int);
 extern int  ext4_setattr(struct dentry *, struct iattr *);
 extern int  ext4_getattr(struct vfsmount *mnt, struct dentry *dentry,
-				struct kstat *stat);
+			 struct kstat *stat, int flags);
 extern void ext4_delete_inode(struct inode *);
 extern int  ext4_sync_inode(handle_t *, struct inode *);
 extern void ext4_dirty_inode(struct inode *);
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index c7fed5b..0178671 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4691,7 +4691,7 @@ err_out:
 }
 
 int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		 struct kstat *stat)
+		 struct kstat *stat, int flags)
 {
 	struct inode *inode;
 	unsigned long delalloc_blocks;
diff --git a/fs/fat/fat.h b/fs/fat/fat.h
index ea440d6..c8dd5bc 100644
--- a/fs/fat/fat.h
+++ b/fs/fat/fat.h
@@ -295,7 +295,7 @@ extern const struct inode_operations fat_file_inode_operations;
 extern int fat_setattr(struct dentry * dentry, struct iattr * attr);
 extern void fat_truncate(struct inode *inode);
 extern int fat_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		       struct kstat *stat);
+		       struct kstat *stat, int flags);
 
 /* fat/inode.c */
 extern void fat_attach(struct inode *inode, loff_t i_pos);
diff --git a/fs/fat/file.c b/fs/fat/file.c
index 0a7f4a9..c2b336c 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -253,7 +253,8 @@ void fat_truncate(struct inode *inode)
 	fat_flush_inodes(inode->i_sb, inode, NULL);
 }
 
-int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat,
+		int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	generic_fillattr(inode, stat);
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index fdff346..52540e0 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1330,7 +1330,7 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr)
 }
 
 static int fuse_getattr(struct vfsmount *mnt, struct dentry *entry,
-			struct kstat *stat)
+			struct kstat *stat, int flags)
 {
 	struct inode *inode = entry->d_inode;
 	struct fuse_conn *fc = get_fuse_conn(inode);
diff --git a/fs/gfs2/ops_inode.c b/fs/gfs2/ops_inode.c
index 4987754..6377e3e 100644
--- a/fs/gfs2/ops_inode.c
+++ b/fs/gfs2/ops_inode.c
@@ -1130,7 +1130,7 @@ out:
  */
 
 static int gfs2_getattr(struct vfsmount *mnt, struct dentry *dentry,
-			struct kstat *stat)
+			struct kstat *stat, int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	struct gfs2_inode *ip = GFS2_I(inode);
diff --git a/fs/minix/inode.c b/fs/minix/inode.c
index 618865b..e2d3b92 100644
--- a/fs/minix/inode.c
+++ b/fs/minix/inode.c
@@ -585,7 +585,7 @@ int minix_sync_inode(struct inode * inode)
 	return err;
 }
 
-int minix_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+int minix_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat, int flags)
 {
 	struct inode *dir = dentry->d_parent->d_inode;
 	struct super_block *sb = dir->i_sb;
diff --git a/fs/minix/minix.h b/fs/minix/minix.h
index e6a0b19..2cc20c7 100644
--- a/fs/minix/minix.h
+++ b/fs/minix/minix.h
@@ -49,7 +49,7 @@ extern unsigned long minix_count_free_inodes(struct minix_sb_info *sbi);
 extern int minix_new_block(struct inode * inode);
 extern void minix_free_block(struct inode *inode, unsigned long block);
 extern unsigned long minix_count_free_blocks(struct minix_sb_info *sbi);
-extern int minix_getattr(struct vfsmount *, struct dentry *, struct kstat *);
+extern int minix_getattr(struct vfsmount *, struct dentry *, struct kstat *, int);
 extern int __minix_write_begin(struct file *file, struct address_space *mapping,
 			loff_t pos, unsigned len, unsigned flags,
 			struct page **pagep, void **fsdata);
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 0c38168..1a4b61d 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -471,7 +471,8 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr)
 	}
 }
 
-int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat,
+		int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	int need_atime = NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATIME;
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index a5887df..3193f6e 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1055,7 +1055,8 @@ bail:
 
 int ocfs2_getattr(struct vfsmount *mnt,
 		  struct dentry *dentry,
-		  struct kstat *stat)
+		  struct kstat *stat,
+		  int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	struct super_block *sb = dentry->d_inode->i_sb;
diff --git a/fs/ocfs2/file.h b/fs/ocfs2/file.h
index 172f9fb..f63012f 100644
--- a/fs/ocfs2/file.h
+++ b/fs/ocfs2/file.h
@@ -58,7 +58,7 @@ int ocfs2_extend_no_holes(struct inode *inode, u64 new_i_size,
 			  u64 zero_to);
 int ocfs2_setattr(struct dentry *dentry, struct iattr *attr);
 int ocfs2_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		  struct kstat *stat);
+		  struct kstat *stat, int flags);
 int ocfs2_permission(struct inode *inode, int mask);
 
 int ocfs2_should_update_atime(struct inode *inode,
diff --git a/fs/proc/base.c b/fs/proc/base.c
index beaa0ce..8e146c7 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1468,7 +1468,7 @@ out_unlock:
 	return NULL;
 }
 
-static int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+static int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat, int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	struct task_struct *task;
@@ -3121,7 +3121,7 @@ out_no_task:
 	return retval;
 }
 
-static int proc_task_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+static int proc_task_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat, int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	struct task_struct *p = get_proc_task(inode);
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index db7fa5c..045e2f2 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -243,7 +243,7 @@ out:
 }
 
 static int proc_getattr(struct vfsmount *mnt, struct dentry *dentry,
-			struct kstat *stat)
+			struct kstat *stat, int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	struct proc_dir_entry *de = PROC_I(inode)->pde;
diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
index 04d1270..6ff64b5 100644
--- a/fs/proc/proc_net.c
+++ b/fs/proc/proc_net.c
@@ -133,7 +133,7 @@ static struct dentry *proc_tgid_net_lookup(struct inode *dir,
 }
 
 static int proc_tgid_net_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		struct kstat *stat)
+				 struct kstat *stat, int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	struct net *net;
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
index 94fcfff..1c93da3 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -335,7 +335,7 @@ static int proc_sys_setattr(struct dentry *dentry, struct iattr *attr)
 	return error;
 }
 
-static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat, int flags)
 {
 	struct inode *inode = dentry->d_inode;
 	struct ctl_table_header *head = grab_header(inode);
diff --git a/fs/proc/root.c b/fs/proc/root.c
index f6299a2..91923e3 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -138,7 +138,7 @@ void __init proc_root_init(void)
 	proc_sys_init();
 }
 
-static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat
+static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat, int flags
 )
 {
 	generic_fillattr(dentry->d_inode, stat);
diff --git a/fs/sysv/itree.c b/fs/sysv/itree.c
index f042eec..33a8145 100644
--- a/fs/sysv/itree.c
+++ b/fs/sysv/itree.c
@@ -440,7 +440,7 @@ static unsigned sysv_nblocks(struct super_block *s, loff_t size)
 	return blocks;
 }
 
-int sysv_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+int sysv_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat, 0)
 {
 	struct super_block *s = mnt->mnt_sb;
 	generic_fillattr(dentry->d_inode, stat);
diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h
index 38ebe3f..44b0e7d 100644
--- a/fs/sysv/sysv.h
+++ b/fs/sysv/sysv.h
@@ -146,7 +146,7 @@ extern int sysv_write_inode(struct inode *, int);
 extern int sysv_sync_inode(struct inode *);
 extern int sysv_sync_file(struct file *, struct dentry *, int);
 extern void sysv_set_inode(struct inode *, dev_t);
-extern int sysv_getattr(struct vfsmount *, struct dentry *, struct kstat *);
+extern int sysv_getattr(struct vfsmount *, struct dentry *, struct kstat *, int);
 extern int sysv_init_icache(void);
 extern void sysv_destroy_icache(void);
 
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index f55d523..a70380e 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -1132,7 +1132,7 @@ out_cancel:
 }
 
 int ubifs_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		  struct kstat *stat)
+		  struct kstat *stat, int flags)
 {
 	loff_t size;
 	struct inode *inode = dentry->d_inode;
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
index 039a68b..b6d0855 100644
--- a/fs/ubifs/ubifs.h
+++ b/fs/ubifs/ubifs.h
@@ -1672,7 +1672,7 @@ int ubifs_setattr(struct dentry *dentry, struct iattr *attr);
 struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir,
 			      int mode);
 int ubifs_getattr(struct vfsmount *mnt, struct dentry *dentry,
-		  struct kstat *stat);
+		  struct kstat *stat, int flags);
 
 /* xattr.c */
 int ubifs_setxattr(struct dentry *dentry, const char *name,
diff --git a/include/linux/coda_linux.h b/include/linux/coda_linux.h
index dcc228a..e954f46 100644
--- a/include/linux/coda_linux.h
+++ b/include/linux/coda_linux.h
@@ -39,7 +39,7 @@ int coda_open(struct inode *i, struct file *f);
 int coda_release(struct inode *i, struct file *f);
 int coda_permission(struct inode *inode, int mask);
 int coda_revalidate_inode(struct dentry *);
-int coda_getattr(struct vfsmount *, struct dentry *, struct kstat *);
+int coda_getattr(struct vfsmount *, struct dentry *, struct kstat *, int);
 int coda_setattr(struct dentry *, struct iattr *);
 
 /* this file:  heloers */
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index db867b0..40bb0de 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -332,7 +332,7 @@ extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *,
 extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *);
 extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr);
 extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr);
-extern int nfs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
+extern int nfs_getattr(struct vfsmount *, struct dentry *, struct kstat *, int);
 extern int nfs_permission(struct inode *, int);
 extern int nfs_open(struct inode *, struct file *);
 extern int nfs_release(struct inode *, struct file *);
-- 
1.5.6

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux