diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2009-12-23 00:43:50 -0500 | 
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-01-14 09:05:25 -0500 | 
| commit | 7b264fc2bef4a3de8bc5ff1a6c5b9e890b069a04 (patch) | |
| tree | 3193dc707b7c6d89b1136d2f3dac2b649032cd86 /fs/hppfs/hppfs.c | |
| parent | 204f2f0e82ec5cecbe671cfe2b132146929213d3 (diff) | |
| download | olio-linux-3.10-7b264fc2bef4a3de8bc5ff1a6c5b9e890b069a04.tar.xz olio-linux-3.10-7b264fc2bef4a3de8bc5ff1a6c5b9e890b069a04.zip  | |
hppfs: handle ->put_link()
current code works only because nothing in procfs has non-trivial
->put_link().
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/hppfs/hppfs.c')
| -rw-r--r-- | fs/hppfs/hppfs.c | 18 | 
1 files changed, 12 insertions, 6 deletions
diff --git a/fs/hppfs/hppfs.c b/fs/hppfs/hppfs.c index a5089a6dd67..7239efc690d 100644 --- a/fs/hppfs/hppfs.c +++ b/fs/hppfs/hppfs.c @@ -646,22 +646,27 @@ static const struct super_operations hppfs_sbops = {  static int hppfs_readlink(struct dentry *dentry, char __user *buffer,  			  int buflen)  { -	struct dentry *proc_dentry; - -	proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; +	struct dentry *proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;  	return proc_dentry->d_inode->i_op->readlink(proc_dentry, buffer,  						    buflen);  }  static void *hppfs_follow_link(struct dentry *dentry, struct nameidata *nd)  { -	struct dentry *proc_dentry; - -	proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; +	struct dentry *proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;  	return proc_dentry->d_inode->i_op->follow_link(proc_dentry, nd);  } +static void hppfs_put_link(struct dentry *dentry, struct nameidata *nd, +			   void *cookie) +{ +	struct dentry *proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; + +	if (proc_dentry->d_inode->i_op->put_link) +		proc_dentry->d_inode->i_op->put_link(proc_dentry, nd, cookie); +} +  static const struct inode_operations hppfs_dir_iops = {  	.lookup		= hppfs_lookup,  }; @@ -669,6 +674,7 @@ static const struct inode_operations hppfs_dir_iops = {  static const struct inode_operations hppfs_link_iops = {  	.readlink	= hppfs_readlink,  	.follow_link	= hppfs_follow_link, +	.put_link	= hppfs_put_link,  };  static struct inode *get_inode(struct super_block *sb, struct dentry *dentry)  |