Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[linux-2.6-block.git] / fs / cifs / cifsfs.c
index 89201564c346227b34fae143cd8936298aab9364..5d8b7edf8a8f69009114e56e28c530fb4e7e686f 100644 (file)
@@ -37,6 +37,7 @@
 #include <linux/freezer.h>
 #include <linux/namei.h>
 #include <linux/random.h>
+#include <linux/xattr.h>
 #include <net/ipv6.h>
 #include "cifsfs.h"
 #include "cifspdu.h"
@@ -135,6 +136,7 @@ cifs_read_super(struct super_block *sb)
 
        sb->s_magic = CIFS_MAGIC_NUMBER;
        sb->s_op = &cifs_super_ops;
+       sb->s_xattr = cifs_xattr_handlers;
        sb->s_bdi = &cifs_sb->bdi;
        sb->s_blocksize = CIFS_MAX_MSGSIZE;
        sb->s_blocksize_bits = 14;      /* default 2**14 = CIFS_MAX_MSGSIZE */
@@ -888,44 +890,33 @@ const struct inode_operations cifs_dir_inode_ops = {
        .rmdir = cifs_rmdir,
        .rename2 = cifs_rename2,
        .permission = cifs_permission,
-/*     revalidate:cifs_revalidate,   */
        .setattr = cifs_setattr,
        .symlink = cifs_symlink,
        .mknod   = cifs_mknod,
-#ifdef CONFIG_CIFS_XATTR
-       .setxattr = cifs_setxattr,
-       .getxattr = cifs_getxattr,
+       .setxattr = generic_setxattr,
+       .getxattr = generic_getxattr,
        .listxattr = cifs_listxattr,
-       .removexattr = cifs_removexattr,
-#endif
+       .removexattr = generic_removexattr,
 };
 
 const struct inode_operations cifs_file_inode_ops = {
-/*     revalidate:cifs_revalidate, */
        .setattr = cifs_setattr,
-       .getattr = cifs_getattr, /* do we need this anymore? */
+       .getattr = cifs_getattr,
        .permission = cifs_permission,
-#ifdef CONFIG_CIFS_XATTR
-       .setxattr = cifs_setxattr,
-       .getxattr = cifs_getxattr,
+       .setxattr = generic_setxattr,
+       .getxattr = generic_getxattr,
        .listxattr = cifs_listxattr,
-       .removexattr = cifs_removexattr,
-#endif
+       .removexattr = generic_removexattr,
 };
 
 const struct inode_operations cifs_symlink_inode_ops = {
        .readlink = generic_readlink,
        .get_link = cifs_get_link,
        .permission = cifs_permission,
-       /* BB add the following two eventually */
-       /* revalidate: cifs_revalidate,
-          setattr:    cifs_notify_change, *//* BB do we need notify change */
-#ifdef CONFIG_CIFS_XATTR
-       .setxattr = cifs_setxattr,
-       .getxattr = cifs_getxattr,
+       .setxattr = generic_setxattr,
+       .getxattr = generic_getxattr,
        .listxattr = cifs_listxattr,
-       .removexattr = cifs_removexattr,
-#endif
+       .removexattr = generic_removexattr,
 };
 
 static int cifs_clone_file_range(struct file *src_file, loff_t off,
@@ -1083,7 +1074,7 @@ const struct file_operations cifs_file_direct_nobrl_ops = {
 };
 
 const struct file_operations cifs_dir_ops = {
-       .iterate = cifs_readdir,
+       .iterate_shared = cifs_readdir,
        .release = cifs_closedir,
        .read    = generic_read_dir,
        .unlocked_ioctl  = cifs_ioctl,
@@ -1307,7 +1298,7 @@ init_cifs(void)
                goto out_destroy_mids;
 
 #ifdef CONFIG_CIFS_UPCALL
-       rc = register_key_type(&cifs_spnego_key_type);
+       rc = init_cifs_spnego();
        if (rc)
                goto out_destroy_request_bufs;
 #endif /* CONFIG_CIFS_UPCALL */
@@ -1330,7 +1321,7 @@ out_init_cifs_idmap:
 out_register_key_type:
 #endif
 #ifdef CONFIG_CIFS_UPCALL
-       unregister_key_type(&cifs_spnego_key_type);
+       exit_cifs_spnego();
 out_destroy_request_bufs:
 #endif
        cifs_destroy_request_bufs();