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