mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-04 04:37:39 -04:00
convert simple_{link,unlink,rmdir,rename,fill_super}() to new primitives
Note that simple_unlink() et.al. are used by many filesystems; for now they can not assume that persistency mark will have been set back when the object got created. Once all conversions are done we'll have them complain if called for something that had not been marked persistent. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
10
fs/libfs.c
10
fs/libfs.c
@@ -630,7 +630,7 @@ static void __simple_recursive_removal(struct dentry *dentry,
|
||||
if (callback)
|
||||
callback(victim);
|
||||
fsnotify_delete(inode, d_inode(victim), victim);
|
||||
dput(victim); // unpin it
|
||||
d_make_discardable(victim);
|
||||
}
|
||||
if (victim == dentry) {
|
||||
inode_set_mtime_to_ts(inode,
|
||||
@@ -764,8 +764,7 @@ int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *den
|
||||
inode_set_ctime_to_ts(dir, inode_set_ctime_current(inode)));
|
||||
inc_nlink(inode);
|
||||
ihold(inode);
|
||||
dget(dentry);
|
||||
d_instantiate(dentry, inode);
|
||||
d_make_persistent(dentry, inode);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(simple_link);
|
||||
@@ -798,7 +797,7 @@ int simple_unlink(struct inode *dir, struct dentry *dentry)
|
||||
inode_set_mtime_to_ts(dir,
|
||||
inode_set_ctime_to_ts(dir, inode_set_ctime_current(inode)));
|
||||
drop_nlink(inode);
|
||||
dput(dentry);
|
||||
d_make_discardable(dentry);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(simple_unlink);
|
||||
@@ -1078,7 +1077,8 @@ int simple_fill_super(struct super_block *s, unsigned long magic,
|
||||
simple_inode_init_ts(inode);
|
||||
inode->i_fop = files->ops;
|
||||
inode->i_ino = i;
|
||||
d_add(dentry, inode);
|
||||
d_make_persistent(dentry, inode);
|
||||
dput(dentry);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user