diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-05-11 14:29:30 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-05-15 07:10:36 +0200 |
commit | 203bc643db59e2538e9a3f19be1636cdfd2bb2db (patch) | |
tree | 370610d82cc68a796c8a48eda8b70ba1171039d5 /Documentation/filesystems/porting | |
parent | namei: handle absolute symlinks without dropping out of RCU mode (diff) | |
download | linux-203bc643db59e2538e9a3f19be1636cdfd2bb2db.tar.xz linux-203bc643db59e2538e9a3f19be1636cdfd2bb2db.zip |
update Documentation/filesystems/ regarding the follow_link/put_link changes
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'Documentation/filesystems/porting')
-rw-r--r-- | Documentation/filesystems/porting | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index e69274de8d0c..3eae250254d5 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting @@ -483,3 +483,20 @@ in your dentry operations instead. -- [mandatory] ->aio_read/->aio_write are gone. Use ->read_iter/->write_iter. +--- +[recommended] + for embedded ("fast") symlinks just set inode->i_link to wherever the + symlink body is and use simple_follow_link() as ->follow_link(). +-- +[mandatory] + calling conventions for ->follow_link() have changed. Instead of returning + cookie and using nd_set_link() to store the body to traverse, we return + the body to traverse and store the cookie using explicit void ** argument. + nameidata isn't passed at all - nd_jump_link() doesn't need it and + nd_[gs]et_link() is gone. +-- +[mandatory] + calling conventions for ->put_link() have changed. It gets inode instead of + dentry, it does not get nameidata at all and it gets called only when cookie + is non-NULL. Note that link body isn't available anymore, so if you need it, + store it as cookie. |