[RFC 2/2] Doc: vfs: Update few inode specific super_operations methods

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Remove delete_inode & clear_inode method from super_operations
as these are no more present.
Also add documentation about free_inode & evict_inode methods.

Signed-off-by: Ritesh Harjani <riteshh@xxxxxxxxxxxxx>
---
 Documentation/filesystems/vfs.rst | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/vfs.rst
index 0f85ab21c2ca..f5e8a0133e1f 100644
--- a/Documentation/filesystems/vfs.rst
+++ b/Documentation/filesystems/vfs.rst
@@ -229,18 +229,18 @@ filesystem.  As of kernel 2.6.22, the following members are defined:
 	struct super_operations {
 		struct inode *(*alloc_inode)(struct super_block *sb);
 		void (*destroy_inode)(struct inode *);
+		void (*free_inode)(struct inode *);
 
 		void (*dirty_inode) (struct inode *, int flags);
 		int (*write_inode) (struct inode *, int);
 		void (*drop_inode) (struct inode *);
-		void (*delete_inode) (struct inode *);
+		void (*evict_inode) (struct inode *);
 		void (*put_super) (struct super_block *);
 		int (*sync_fs)(struct super_block *sb, int wait);
 		int (*freeze_fs) (struct super_block *);
 		int (*unfreeze_fs) (struct super_block *);
 		int (*statfs) (struct dentry *, struct kstatfs *);
 		int (*remount_fs) (struct super_block *, int *, char *);
-		void (*clear_inode) (struct inode *);
 		void (*umount_begin) (struct super_block *);
 
 		int (*show_options)(struct seq_file *, struct dentry *);
@@ -269,6 +269,12 @@ or bottom half).
 	->alloc_inode was defined and simply undoes anything done by
 	->alloc_inode.
 
+``free_inode``
+	This is the last part of resource freeing for inode done
+	in RCU-delayed way. This is called at the end by
+	destroy_inode method using call_rcu, mostly to free FS specific
+	inodep cache object.
+
 ``dirty_inode``
 	this method is called by the VFS to mark an inode dirty.
 
@@ -283,15 +289,22 @@ or bottom half).
 
 	This method should be either NULL (normal UNIX filesystem
 	semantics) or "generic_delete_inode" (for filesystems that do
-	not want to cache inodes - causing "delete_inode" to always be
+	not want to cache inodes - causing "evict_inode" to always be
 	called regardless of the value of i_nlink)
 
 	The "generic_delete_inode()" behavior is equivalent to the old
 	practice of using "force_delete" in the put_inode() case, but
 	does not have the races that the "force_delete()" approach had.
 
-``delete_inode``
-	called when the VFS wants to delete an inode
+``evict_inode``
+	Called by iput_final when the inode reference count reaches
+	zero and the inode is not in lru list. Method is used to clean anything
+	by FS that needs to be, before the inode is completely destroyed and
+	put on the free list.
+	For stacked filesystems, this is the place where the reference of
+	lower inodes are dropped.
+	For local filesystems, this is the place to truncate all pages
+	before inode dies and also to perform necessary cleanup.
 
 ``put_super``
 	called when the VFS wishes to free the superblock
@@ -318,9 +331,6 @@ or bottom half).
 	called when the filesystem is remounted.  This is called with
 	the kernel lock held
 
-``clear_inode``
-	called then the VFS clears the inode.  Optional
-
 ``umount_begin``
 	called when the VFS is unmounting a filesystem.
 
-- 
2.21.0




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux