diff --git a/kmod/src/dir.c b/kmod/src/dir.c index ac5aebd4..8522f945 100644 --- a/kmod/src/dir.c +++ b/kmod/src/dir.c @@ -986,6 +986,7 @@ const struct inode_operations scoutfs_symlink_iops = { .readlink = generic_readlink, .follow_link = scoutfs_follow_link, .put_link = scoutfs_put_link, + .getattr = scoutfs_getattr, .setxattr = scoutfs_setxattr, .getxattr = scoutfs_getxattr, .listxattr = scoutfs_listxattr, @@ -1637,6 +1638,7 @@ const struct inode_operations scoutfs_dir_iops = { .unlink = scoutfs_unlink, .rmdir = scoutfs_unlink, .rename = scoutfs_rename, + .getattr = scoutfs_getattr, .setxattr = scoutfs_setxattr, .getxattr = scoutfs_getxattr, .listxattr = scoutfs_listxattr, diff --git a/kmod/src/inode.c b/kmod/src/inode.c index 5d10ef7f..be8bbee0 100644 --- a/kmod/src/inode.c +++ b/kmod/src/inode.c @@ -66,8 +66,6 @@ struct inode_sb_info { struct inode_sb_info *name = SCOUTFS_SB(sb)->inode_sb_info static struct kmem_cache *scoutfs_inode_cachep; -static int scoutfs_getattr(struct vfsmount *mnt, struct dentry *dentry, - struct kstat *stat); /* * This is called once before all the allocations and frees of a inode @@ -162,6 +160,7 @@ static const struct inode_operations scoutfs_file_iops = { }; static const struct inode_operations scoutfs_special_iops = { + .getattr = scoutfs_getattr, .setxattr = scoutfs_setxattr, .getxattr = scoutfs_getxattr, .listxattr = scoutfs_listxattr, @@ -309,8 +308,8 @@ void scoutfs_inode_init_key(struct scoutfs_key_buf *key, scoutfs_key_init(key, ikey, sizeof(struct scoutfs_inode_key)); } -static int scoutfs_getattr(struct vfsmount *mnt, struct dentry *dentry, - struct kstat *stat) +int scoutfs_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat) { struct inode *inode = dentry->d_inode; struct super_block *sb = inode->i_sb; diff --git a/kmod/src/inode.h b/kmod/src/inode.h index 1e0b4f5e..be47ddb0 100644 --- a/kmod/src/inode.h +++ b/kmod/src/inode.h @@ -93,6 +93,8 @@ u64 scoutfs_inode_data_version(struct inode *inode); int scoutfs_inode_refresh(struct inode *inode, struct scoutfs_lock *lock, int flags); +int scoutfs_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat); int scoutfs_scan_orphans(struct super_block *sb);