summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/filesystems/Locking2
-rw-r--r--Documentation/filesystems/porting6
-rw-r--r--Documentation/filesystems/vfs.txt21
3 files changed, 16 insertions, 13 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 4fba54b9fcec..619af9bfdcb3 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -51,7 +51,6 @@ prototypes:
51 struct inode *, struct dentry *, unsigned int); 51 struct inode *, struct dentry *, unsigned int);
52 int (*readlink) (struct dentry *, char __user *,int); 52 int (*readlink) (struct dentry *, char __user *,int);
53 const char *(*get_link) (struct dentry *, struct inode *, void **); 53 const char *(*get_link) (struct dentry *, struct inode *, void **);
54 void (*put_link) (struct inode *, void *);
55 void (*truncate) (struct inode *); 54 void (*truncate) (struct inode *);
56 int (*permission) (struct inode *, int, unsigned int); 55 int (*permission) (struct inode *, int, unsigned int);
57 int (*get_acl)(struct inode *, int); 56 int (*get_acl)(struct inode *, int);
@@ -84,7 +83,6 @@ rename: yes (all) (see below)
84rename2: yes (all) (see below) 83rename2: yes (all) (see below)
85readlink: no 84readlink: no
86get_link: no 85get_link: no
87put_link: no
88setattr: yes 86setattr: yes
89permission: no (may not block if called in rcu-walk mode) 87permission: no (may not block if called in rcu-walk mode)
90get_acl: no 88get_acl: no
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index cf92a8c55594..0f88e6020487 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -515,3 +515,9 @@ in your dentry operations instead.
515 * ->get_link() gets inode as a separate argument 515 * ->get_link() gets inode as a separate argument
516 * ->get_link() may be called in RCU mode - in that case NULL 516 * ->get_link() may be called in RCU mode - in that case NULL
517 dentry is passed 517 dentry is passed
518--
519[mandatory]
520 ->get_link() gets struct delayed_call *done now, and should do
521 set_delayed_call() where it used to set *cookie.
522 ->put_link() is gone - just give the destructor to set_delayed_call()
523 in ->get_link().
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index 8c6f07ad373a..b02a7d598258 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -350,8 +350,8 @@ struct inode_operations {
350 int (*rename2) (struct inode *, struct dentry *, 350 int (*rename2) (struct inode *, struct dentry *,
351 struct inode *, struct dentry *, unsigned int); 351 struct inode *, struct dentry *, unsigned int);
352 int (*readlink) (struct dentry *, char __user *,int); 352 int (*readlink) (struct dentry *, char __user *,int);
353 const char *(*follow_link) (struct dentry *, void **); 353 const char *(*get_link) (struct dentry *, struct inode *,
354 void (*put_link) (struct inode *, void *); 354 struct delayed_call *);
355 int (*permission) (struct inode *, int); 355 int (*permission) (struct inode *, int);
356 int (*get_acl)(struct inode *, int); 356 int (*get_acl)(struct inode *, int);
357 int (*setattr) (struct dentry *, struct iattr *); 357 int (*setattr) (struct dentry *, struct iattr *);
@@ -434,20 +434,19 @@ otherwise noted.
434 readlink: called by the readlink(2) system call. Only required if 434 readlink: called by the readlink(2) system call. Only required if
435 you want to support reading symbolic links 435 you want to support reading symbolic links
436 436
437 follow_link: called by the VFS to follow a symbolic link to the 437 get_link: called by the VFS to follow a symbolic link to the
438 inode it points to. Only required if you want to support 438 inode it points to. Only required if you want to support
439 symbolic links. This method returns the symlink body 439 symbolic links. This method returns the symlink body
440 to traverse (and possibly resets the current position with 440 to traverse (and possibly resets the current position with
441 nd_jump_link()). If the body won't go away until the inode 441 nd_jump_link()). If the body won't go away until the inode
442 is gone, nothing else is needed; if it needs to be otherwise 442 is gone, nothing else is needed; if it needs to be otherwise
443 pinned, the data needed to release whatever we'd grabbed 443 pinned, arrange for its release by having get_link(..., ..., done)
444 is to be stored in void * variable passed by address to 444 do set_delayed_call(done, destructor, argument).
445 follow_link() instance. 445 In that case destructor(argument) will be called once VFS is
446 446 done with the body you've returned.
447 put_link: called by the VFS to release resources allocated by 447 May be called in RCU mode; that is indicated by NULL dentry
448 follow_link(). The cookie stored by follow_link() is passed 448 argument. If request can't be handled without leaving RCU mode,
449 to this method as the last parameter; only called when 449 have it return ERR_PTR(-ECHILD).
450 cookie isn't NULL.
451 450
452 permission: called by the VFS to check for access rights on a POSIX-like 451 permission: called by the VFS to check for access rights on a POSIX-like
453 filesystem. 452 filesystem.