]> git.proxmox.com Git - mirror_spl.git/commit
Linux 3.6 compat, kern_path_locked() added
authorYuxuan Shui <yshuiv7@gmail.com>
Thu, 11 Oct 2012 14:41:33 +0000 (22:41 +0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sun, 14 Oct 2012 23:26:21 +0000 (16:26 -0700)
commitbcb15891ab394e11615eee08bba1fd85ac32e158
treeae6bc520ef7ce3210d1556229a28e5676299c06e
parentdea3505dff1252b337eb1cb8744626fb0f796d86
Linux 3.6 compat, kern_path_locked() added

The kern_path_parent() function was removed from Linux 3.6 because
it was observed that all the callers just want the parent dentry.
The simpler kern_path_locked() function replaces kern_path_parent()
and does the lookup while holding the ->i_mutex lock.

This is good news for the vn implementation because it removes the
need for us to handle the locking.  However, it makes it harder to
implement a single readable vn_remove()/vn_rename() function which
is usually what we prefer.

Therefore, we implement a new version of vn_remove()/vn_rename()
for Linux 3.6 and newer kernels.  This allows us to leave the
existing working implementation untouched, and to add a simpler
version for newer kernels.

Long term I would very much like to see all of the vn code removed
since what this code enabled is generally frowned upon in the kernel.
But that can't happen util we either abondon the zpool.cache file
or implement alternate infrastructure to update is correctly in
user space.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #154
config/spl-build.m4
include/linux/file_compat.h
module/spl/spl-vnode.c