diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-12-29 15:58:39 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-12-30 13:01:03 -0500 |
commit | fceef393a538134f03b778c5d2519e670269342f (patch) | |
tree | cd43c9afdc07852d286965ad4d11772f6c275d1a /fs/cifs | |
parent | cd3417c8fc9504cc1afe944515f338aff9ec286b (diff) |
switch ->get_link() to delayed_call, kill ->put_link()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/cifsfs.c | 1 | ||||
-rw-r--r-- | fs/cifs/cifsfs.h | 3 | ||||
-rw-r--r-- | fs/cifs/link.c | 6 |
3 files changed, 6 insertions, 4 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 4593f41678ef..90e4e2b398b6 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -901,7 +901,6 @@ const struct inode_operations cifs_file_inode_ops = { | |||
901 | const struct inode_operations cifs_symlink_inode_ops = { | 901 | const struct inode_operations cifs_symlink_inode_ops = { |
902 | .readlink = generic_readlink, | 902 | .readlink = generic_readlink, |
903 | .get_link = cifs_get_link, | 903 | .get_link = cifs_get_link, |
904 | .put_link = kfree_put_link, | ||
905 | .permission = cifs_permission, | 904 | .permission = cifs_permission, |
906 | /* BB add the following two eventually */ | 905 | /* BB add the following two eventually */ |
907 | /* revalidate: cifs_revalidate, | 906 | /* revalidate: cifs_revalidate, |
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h index 6886328cf3c4..26a1187d4323 100644 --- a/fs/cifs/cifsfs.h +++ b/fs/cifs/cifsfs.h | |||
@@ -120,7 +120,8 @@ extern struct vfsmount *cifs_dfs_d_automount(struct path *path); | |||
120 | #endif | 120 | #endif |
121 | 121 | ||
122 | /* Functions related to symlinks */ | 122 | /* Functions related to symlinks */ |
123 | extern const char *cifs_get_link(struct dentry *, struct inode *, void **); | 123 | extern const char *cifs_get_link(struct dentry *, struct inode *, |
124 | struct delayed_call *); | ||
124 | extern int cifs_symlink(struct inode *inode, struct dentry *direntry, | 125 | extern int cifs_symlink(struct inode *inode, struct dentry *direntry, |
125 | const char *symname); | 126 | const char *symname); |
126 | extern int cifs_removexattr(struct dentry *, const char *); | 127 | extern int cifs_removexattr(struct dentry *, const char *); |
diff --git a/fs/cifs/link.c b/fs/cifs/link.c index 6f2439b508b5..062c2375549a 100644 --- a/fs/cifs/link.c +++ b/fs/cifs/link.c | |||
@@ -627,7 +627,8 @@ cifs_hl_exit: | |||
627 | } | 627 | } |
628 | 628 | ||
629 | const char * | 629 | const char * |
630 | cifs_get_link(struct dentry *direntry, struct inode *inode, void **cookie) | 630 | cifs_get_link(struct dentry *direntry, struct inode *inode, |
631 | struct delayed_call *done) | ||
631 | { | 632 | { |
632 | int rc = -ENOMEM; | 633 | int rc = -ENOMEM; |
633 | unsigned int xid; | 634 | unsigned int xid; |
@@ -680,7 +681,8 @@ cifs_get_link(struct dentry *direntry, struct inode *inode, void **cookie) | |||
680 | kfree(target_path); | 681 | kfree(target_path); |
681 | return ERR_PTR(rc); | 682 | return ERR_PTR(rc); |
682 | } | 683 | } |
683 | return *cookie = target_path; | 684 | set_delayed_call(done, kfree_link, target_path); |
685 | return target_path; | ||
684 | } | 686 | } |
685 | 687 | ||
686 | int | 688 | int |