Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[cascardo/linux.git] / Documentation / filesystems / porting
index a5fb89c..bdd025c 100644 (file)
@@ -287,8 +287,8 @@ implementing on-disk size changes.  Start with a copy of the old inode_setattr
 and vmtruncate, and the reorder the vmtruncate + foofs_vmtruncate sequence to
 be in order of zeroing blocks using block_truncate_page or similar helpers,
 size update and on finally on-disk truncation which should not fail.
-inode_change_ok now includes the size checks for ATTR_SIZE and must be called
-in the beginning of ->setattr unconditionally.
+setattr_prepare (which used to be inode_change_ok) now includes the size checks
+for ATTR_SIZE and must be called in the beginning of ->setattr unconditionally.
 
 [mandatory]
 
@@ -585,3 +585,14 @@ in your dentry operations instead.
        in the instances.  Rationale: !@#!@# security_d_instantiate() needs to be
        called before we attach dentry to inode and !@#!@##!@$!$#!@#$!@$!@$ smack
        ->d_instantiate() uses not just ->getxattr() but ->setxattr() as well.
+--
+[mandatory]
+       ->d_compare() doesn't get parent as a separate argument anymore.  If you
+       used it for finding the struct super_block involved, dentry->d_sb will
+       work just as well; if it's something more complicated, use dentry->d_parent.
+       Just be careful not to assume that fetching it more than once will yield
+       the same value - in RCU mode it could change under you.
+--
+[mandatory]
+       ->rename() has an added flags argument.  Any flags not handled by the
+        filesystem should result in EINVAL being returned.