From: Mark Fasheh <mfasheh@suse.com>
To: linux-fsdevel@vger.kernel.org
Cc: Sage Weil <sage@newdream.net>,
Trond Myklebust <Trond.Myklebust@netapp.com>,
Andreas Dilger <adilger@sun.com>
Subject: [PATCH 2/2] [RFC] sys_fstatat: Update file systems for new ->getattr callback
Date: Tue, 7 Apr 2009 01:01:07 -0700 [thread overview]
Message-ID: <20090407080107.GR14571@wotan.suse.de> (raw)
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@suse.com>
---
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
next reply other threads:[~2009-04-07 8:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-07 8:01 Mark Fasheh [this message]
2009-04-07 22:18 ` [PATCH 3/2] [RFC] NFS: Support the AT_NO_TIMES and AT_STRICT fstatat flags Trond Myklebust
2009-04-07 22:47 ` Oleg Drokin
2009-04-07 23:07 ` Trond Myklebust
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090407080107.GR14571@wotan.suse.de \
--to=mfasheh@suse.com \
--cc=Trond.Myklebust@netapp.com \
--cc=adilger@sun.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=sage@newdream.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).