From a6695d83b763aaeeeeb6d4bdb57ed59a384106f7 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Wed, 16 Feb 2011 09:55:53 -0800 Subject: [PATCH] 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. --- module/zfs/zpl_inode.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c index e866dcd4d508..637a7dc698b8 100644 --- a/module/zfs/zpl_inode.c +++ b/module/zfs/zpl_inode.c @@ -288,7 +288,6 @@ zpl_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) } 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, };