aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-02-16 09:55:53 -0800
committerBrian Behlendorf <[email protected]>2011-02-16 09:55:53 -0800
commita6695d83b763aaeeeeb6d4bdb57ed59a384106f7 (patch)
treef083316fef9eaaf5262adebad3b2edf27b110d17 /module/zfs
parentd8fd10545b677cb4b770674372c1e116b7c22c64 (diff)
Add get/setattr, get/setxattr hooks
While the attr/xattr hooks were already in place for regular files this hooks can also apply to directories and special files. While they aren't typically used in this way, it should be supported. This patch registers these additional callbacks for both directory and special inode types.
Diffstat (limited to 'module/zfs')
-rw-r--r--module/zfs/zpl_inode.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c
index e866dcd4d..637a7dc69 100644
--- a/module/zfs/zpl_inode.c
+++ b/module/zfs/zpl_inode.c
@@ -288,7 +288,6 @@ out:
}
const struct inode_operations zpl_inode_operations = {
- .check_acl = NULL,
.create = zpl_create,
.link = zpl_link,
.unlink = zpl_unlink,
@@ -306,7 +305,6 @@ const struct inode_operations zpl_inode_operations = {
};
const struct inode_operations zpl_dir_inode_operations = {
- .check_acl = NULL,
.create = zpl_create,
.lookup = zpl_lookup,
.link = zpl_link,
@@ -317,15 +315,24 @@ const struct inode_operations zpl_dir_inode_operations = {
.mknod = zpl_mknod,
.rename = zpl_rename,
.setattr = zpl_setattr,
+ .getattr = zpl_getattr,
+ .setxattr = generic_setxattr,
+ .getxattr = generic_getxattr,
+ .removexattr = generic_removexattr,
+ .listxattr = zpl_xattr_list,
};
const struct inode_operations zpl_symlink_inode_operations = {
- .check_acl = NULL,
.readlink = generic_readlink,
.follow_link = zpl_follow_link,
.put_link = zpl_put_link,
};
const struct inode_operations zpl_special_inode_operations = {
- .check_acl = NULL,
+ .setattr = zpl_setattr,
+ .getattr = zpl_getattr,
+ .setxattr = generic_setxattr,
+ .getxattr = generic_getxattr,
+ .removexattr = generic_removexattr,
+ .listxattr = zpl_xattr_list,
};