diff options
Diffstat (limited to 'Documentation/filesystems/Locking')
-rw-r--r-- | Documentation/filesystems/Locking | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 82e8e52e8790..653380793a6c 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -52,7 +52,7 @@ ata *); | |||
52 | void (*put_link) (struct dentry *, struct nameidata *, void *); | 52 | void (*put_link) (struct dentry *, struct nameidata *, void *); |
53 | void (*truncate) (struct inode *); | 53 | void (*truncate) (struct inode *); |
54 | int (*permission) (struct inode *, int, unsigned int); | 54 | int (*permission) (struct inode *, int, unsigned int); |
55 | int (*check_acl)(struct inode *, int, unsigned int); | 55 | int (*get_acl)(struct inode *, int); |
56 | int (*setattr) (struct dentry *, struct iattr *); | 56 | int (*setattr) (struct dentry *, struct iattr *); |
57 | int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *); | 57 | int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *); |
58 | int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); | 58 | int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); |
@@ -80,7 +80,7 @@ put_link: no | |||
80 | truncate: yes (see below) | 80 | truncate: yes (see below) |
81 | setattr: yes | 81 | setattr: yes |
82 | permission: no (may not block if called in rcu-walk mode) | 82 | permission: no (may not block if called in rcu-walk mode) |
83 | check_acl: no | 83 | get_acl: no |
84 | getattr: no | 84 | getattr: no |
85 | setxattr: yes | 85 | setxattr: yes |
86 | getxattr: no | 86 | getxattr: no |
@@ -412,7 +412,7 @@ prototypes: | |||
412 | int (*open) (struct inode *, struct file *); | 412 | int (*open) (struct inode *, struct file *); |
413 | int (*flush) (struct file *); | 413 | int (*flush) (struct file *); |
414 | int (*release) (struct inode *, struct file *); | 414 | int (*release) (struct inode *, struct file *); |
415 | int (*fsync) (struct file *, int datasync); | 415 | int (*fsync) (struct file *, loff_t start, loff_t end, int datasync); |
416 | int (*aio_fsync) (struct kiocb *, int datasync); | 416 | int (*aio_fsync) (struct kiocb *, int datasync); |
417 | int (*fasync) (int, struct file *, int); | 417 | int (*fasync) (int, struct file *, int); |
418 | int (*lock) (struct file *, int, struct file_lock *); | 418 | int (*lock) (struct file *, int, struct file_lock *); |
@@ -438,9 +438,7 @@ prototypes: | |||
438 | 438 | ||
439 | locking rules: | 439 | locking rules: |
440 | All may block except for ->setlease. | 440 | All may block except for ->setlease. |
441 | No VFS locks held on entry except for ->fsync and ->setlease. | 441 | No VFS locks held on entry except for ->setlease. |
442 | |||
443 | ->fsync() has i_mutex on inode. | ||
444 | 442 | ||
445 | ->setlease has the file_list_lock held and must not sleep. | 443 | ->setlease has the file_list_lock held and must not sleep. |
446 | 444 | ||