fsstack/ecryptfs: remove unused get_nlinks param to fsstack_copy_attr_all

This get_nlinks parameter was never used by the only mainline user,
ecryptfs; and it has never been used by unionfs or wrapfs either.

Acked-by: Dustin Kirkland <kirkland@canonical.com>
Acked-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Erez Zadok 2009-12-02 19:51:54 -05:00 committed by Al Viro
parent cb59861f03
commit 9afa2fb6c1
5 changed files with 9 additions and 22 deletions

View file

@ -62,7 +62,7 @@ static int ecryptfs_d_revalidate(struct dentry *dentry, struct nameidata *nd)
struct inode *lower_inode = struct inode *lower_inode =
ecryptfs_inode_to_lower(dentry->d_inode); ecryptfs_inode_to_lower(dentry->d_inode);
fsstack_copy_attr_all(dentry->d_inode, lower_inode, NULL); fsstack_copy_attr_all(dentry->d_inode, lower_inode);
} }
out: out:
return rc; return rc;

View file

@ -626,9 +626,9 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry,
lower_new_dir_dentry->d_inode, lower_new_dentry); lower_new_dir_dentry->d_inode, lower_new_dentry);
if (rc) if (rc)
goto out_lock; goto out_lock;
fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode, NULL); fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode);
if (new_dir != old_dir) if (new_dir != old_dir)
fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode, NULL); fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode);
out_lock: out_lock:
unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry); unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry);
dput(lower_new_dentry->d_parent); dput(lower_new_dentry->d_parent);
@ -967,7 +967,7 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia)
rc = notify_change(lower_dentry, ia); rc = notify_change(lower_dentry, ia);
mutex_unlock(&lower_dentry->d_inode->i_mutex); mutex_unlock(&lower_dentry->d_inode->i_mutex);
out: out:
fsstack_copy_attr_all(inode, lower_inode, NULL); fsstack_copy_attr_all(inode, lower_inode);
return rc; return rc;
} }

View file

@ -189,7 +189,7 @@ int ecryptfs_interpose(struct dentry *lower_dentry, struct dentry *dentry,
init_special_inode(inode, lower_inode->i_mode, init_special_inode(inode, lower_inode->i_mode,
lower_inode->i_rdev); lower_inode->i_rdev);
dentry->d_op = &ecryptfs_dops; dentry->d_op = &ecryptfs_dops;
fsstack_copy_attr_all(inode, lower_inode, NULL); fsstack_copy_attr_all(inode, lower_inode);
/* This size will be overwritten for real files w/ headers and /* This size will be overwritten for real files w/ headers and
* other metadata */ * other metadata */
fsstack_copy_inode_size(inode, lower_inode); fsstack_copy_inode_size(inode, lower_inode);

View file

@ -14,11 +14,8 @@ void fsstack_copy_inode_size(struct inode *dst, const struct inode *src)
} }
EXPORT_SYMBOL_GPL(fsstack_copy_inode_size); EXPORT_SYMBOL_GPL(fsstack_copy_inode_size);
/* copy all attributes; get_nlinks is optional way to override the i_nlink /* copy all attributes */
* copying void fsstack_copy_attr_all(struct inode *dest, const struct inode *src)
*/
void fsstack_copy_attr_all(struct inode *dest, const struct inode *src,
int (*get_nlinks)(struct inode *))
{ {
dest->i_mode = src->i_mode; dest->i_mode = src->i_mode;
dest->i_uid = src->i_uid; dest->i_uid = src->i_uid;
@ -29,14 +26,6 @@ void fsstack_copy_attr_all(struct inode *dest, const struct inode *src,
dest->i_ctime = src->i_ctime; dest->i_ctime = src->i_ctime;
dest->i_blkbits = src->i_blkbits; dest->i_blkbits = src->i_blkbits;
dest->i_flags = src->i_flags; dest->i_flags = src->i_flags;
dest->i_nlink = src->i_nlink;
/*
* Update the nlinks AFTER updating the above fields, because the
* get_links callback may depend on them.
*/
if (!get_nlinks)
dest->i_nlink = src->i_nlink;
else
dest->i_nlink = (*get_nlinks)(dest);
} }
EXPORT_SYMBOL_GPL(fsstack_copy_attr_all); EXPORT_SYMBOL_GPL(fsstack_copy_attr_all);

View file

@ -8,9 +8,7 @@
#include <linux/fs.h> #include <linux/fs.h>
/* externs for fs/stack.c */ /* externs for fs/stack.c */
extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src, extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src);
int (*get_nlinks)(struct inode *));
extern void fsstack_copy_inode_size(struct inode *dst, const struct inode *src); extern void fsstack_copy_inode_size(struct inode *dst, const struct inode *src);
/* inlines */ /* inlines */