diff options
Diffstat (limited to 'Documentation/filesystems')
| -rw-r--r-- | Documentation/filesystems/Locking | 3 | ||||
| -rw-r--r-- | Documentation/filesystems/porting | 12 | ||||
| -rw-r--r-- | Documentation/filesystems/vfs.txt | 17 | 
3 files changed, 9 insertions, 23 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 37c10cba717..42d4b30b104 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking @@ -90,7 +90,6 @@ of the locking scheme for directory operations.  prototypes:  	struct inode *(*alloc_inode)(struct super_block *sb);  	void (*destroy_inode)(struct inode *); -	void (*read_inode) (struct inode *);  	void (*dirty_inode) (struct inode *);  	int (*write_inode) (struct inode *, int);  	void (*put_inode) (struct inode *); @@ -114,7 +113,6 @@ locking rules:  			BKL	s_lock	s_umount  alloc_inode:		no	no	no  destroy_inode:		no -read_inode:		no				(see below)  dirty_inode:		no				(must not sleep)  write_inode:		no  put_inode:		no @@ -133,7 +131,6 @@ show_options:		no				(vfsmount->sem)  quota_read:		no	no	no		(see below)  quota_write:		no	no	no		(see below) -->read_inode() is not a method - it's a callback used in iget().  ->remount_fs() will have the s_umount lock if it's already mounted.  When called from get_sb_single, it does NOT have the s_umount lock.  ->quota_read() and ->quota_write() functions are both guaranteed to diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index fbd3815a5f5..92b888d540a 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting @@ -34,8 +34,8 @@ FOO_I(inode) (see in-tree filesystems for examples).  Make them ->alloc_inode and ->destroy_inode in your super_operations. -Keep in mind that now you need explicit initialization of private data - -typically in ->read_inode() and after getting an inode from new_inode(). +Keep in mind that now you need explicit initialization of private data +typically between calling iget_locked() and unlocking the inode.  At some point that will become mandatory. @@ -173,10 +173,10 @@ should be a non-blocking function that initializes those parts of a  newly created inode to allow the test function to succeed. 'data' is  passed as an opaque value to both test and set functions. -When the inode has been created by iget5_locked(), it will be returned with -the I_NEW flag set and will still be locked. read_inode has not been -called so the file system still has to finalize the initialization. Once -the inode is initialized it must be unlocked by calling unlock_new_inode(). +When the inode has been created by iget5_locked(), it will be returned with the +I_NEW flag set and will still be locked.  The filesystem then needs to finalize +the initialization. Once the inode is initialized it must be unlocked by +calling unlock_new_inode().  The filesystem is responsible for setting (and possibly testing) i_ino  when appropriate. There is also a simpler iget_locked function that diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 9d019d35728..bd55038b56f 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt @@ -203,8 +203,6 @@ struct super_operations {          struct inode *(*alloc_inode)(struct super_block *sb);          void (*destroy_inode)(struct inode *); -        void (*read_inode) (struct inode *); -          void (*dirty_inode) (struct inode *);          int (*write_inode) (struct inode *, int);          void (*put_inode) (struct inode *); @@ -242,15 +240,6 @@ or bottom half).    	->alloc_inode was defined and simply undoes anything done by  	->alloc_inode. -  read_inode: this method is called to read a specific inode from the -        mounted filesystem.  The i_ino member in the struct inode is -	initialized by the VFS to indicate which inode to read. Other -	members are filled in by this method. - -	You can set this to NULL and use iget5_locked() instead of iget() -	to read inodes.  This is necessary for filesystems for which the -	inode number is not sufficient to identify an inode. -    dirty_inode: this method is called by the VFS to mark an inode dirty.    write_inode: this method is called when the VFS needs to write an @@ -308,9 +297,9 @@ or bottom half).    quota_write: called by the VFS to write to filesystem quota file. -The read_inode() method is responsible for filling in the "i_op" -field. This is a pointer to a "struct inode_operations" which -describes the methods that can be performed on individual inodes. +Whoever sets up the inode is responsible for filling in the "i_op" field. This +is a pointer to a "struct inode_operations" which describes the methods that +can be performed on individual inodes.  The Inode Object  |