Commit e49ce258 authored by Al Viro's avatar Al Viro
Browse files

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: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent bacdf1d7
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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;
}