switch ->get_link() to delayed_call, kill ->put_link()
[deliverable/linux.git] / fs / fuse / dir.c
index def0a4d082bc182fd07a9589af5675c1131af1de..712601f299b8a1436d69f0a31362ab57032f24b7 100644 (file)
@@ -1366,7 +1366,8 @@ static int fuse_readdir(struct file *file, struct dir_context *ctx)
 }
 
 static const char *fuse_get_link(struct dentry *dentry,
-                                struct inode *inode, void **cookie)
+                                struct inode *inode,
+                                struct delayed_call *done)
 {
        struct fuse_conn *fc = get_fuse_conn(inode);
        FUSE_ARGS(args);
@@ -1392,7 +1393,7 @@ static const char *fuse_get_link(struct dentry *dentry,
                link = ERR_PTR(ret);
        } else {
                link[ret] = '\0';
-               *cookie = link;
+               set_delayed_call(done, kfree_link, link);
        }
        fuse_invalidate_atime(inode);
        return link;
@@ -1913,7 +1914,6 @@ static const struct inode_operations fuse_common_inode_operations = {
 static const struct inode_operations fuse_symlink_inode_operations = {
        .setattr        = fuse_setattr,
        .get_link       = fuse_get_link,
-       .put_link       = kfree_put_link,
        .readlink       = generic_readlink,
        .getattr        = fuse_getattr,
        .setxattr       = fuse_setxattr,
This page took 0.025529 seconds and 5 git commands to generate.