diff options
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/Locking | 2 | ||||
-rw-r--r-- | Documentation/filesystems/vfs.txt | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 977d8919cc69..5f0c52a07386 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -19,6 +19,7 @@ prototypes: | |||
19 | void (*d_release)(struct dentry *); | 19 | void (*d_release)(struct dentry *); |
20 | void (*d_iput)(struct dentry *, struct inode *); | 20 | void (*d_iput)(struct dentry *, struct inode *); |
21 | char *(*d_dname)((struct dentry *dentry, char *buffer, int buflen); | 21 | char *(*d_dname)((struct dentry *dentry, char *buffer, int buflen); |
22 | struct vfsmount *(*d_automount)(struct path *path); | ||
22 | 23 | ||
23 | locking rules: | 24 | locking rules: |
24 | rename_lock ->d_lock may block rcu-walk | 25 | rename_lock ->d_lock may block rcu-walk |
@@ -29,6 +30,7 @@ d_delete: no yes no no | |||
29 | d_release: no no yes no | 30 | d_release: no no yes no |
30 | d_iput: no no yes no | 31 | d_iput: no no yes no |
31 | d_dname: no no no no | 32 | d_dname: no no no no |
33 | d_automount: no no yes no | ||
32 | 34 | ||
33 | --------------------------- inode_operations --------------------------- | 35 | --------------------------- inode_operations --------------------------- |
34 | prototypes: | 36 | prototypes: |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index cae6d27c9f5b..726a4f6fa3c9 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -864,6 +864,7 @@ struct dentry_operations { | |||
864 | void (*d_release)(struct dentry *); | 864 | void (*d_release)(struct dentry *); |
865 | void (*d_iput)(struct dentry *, struct inode *); | 865 | void (*d_iput)(struct dentry *, struct inode *); |
866 | char *(*d_dname)(struct dentry *, char *, int); | 866 | char *(*d_dname)(struct dentry *, char *, int); |
867 | struct vfsmount *(*d_automount)(struct path *); | ||
867 | }; | 868 | }; |
868 | 869 | ||
869 | d_revalidate: called when the VFS needs to revalidate a dentry. This | 870 | d_revalidate: called when the VFS needs to revalidate a dentry. This |
@@ -930,6 +931,19 @@ struct dentry_operations { | |||
930 | at the end of the buffer, and returns a pointer to the first char. | 931 | at the end of the buffer, and returns a pointer to the first char. |
931 | dynamic_dname() helper function is provided to take care of this. | 932 | dynamic_dname() helper function is provided to take care of this. |
932 | 933 | ||
934 | d_automount: called when an automount dentry is to be traversed (optional). | ||
935 | This should create a new VFS mount record, mount it on the directory | ||
936 | and return the record to the caller. The caller is supplied with a | ||
937 | path parameter giving the automount directory to describe the automount | ||
938 | target and the parent VFS mount record to provide inheritable mount | ||
939 | parameters. NULL should be returned if someone else managed to make | ||
940 | the automount first. If the automount failed, then an error code | ||
941 | should be returned. | ||
942 | |||
943 | This function is only used if DCACHE_NEED_AUTOMOUNT is set on the | ||
944 | dentry. This is set by __d_instantiate() if S_AUTOMOUNT is set on the | ||
945 | inode being added. | ||
946 | |||
933 | Example : | 947 | Example : |
934 | 948 | ||
935 | static char *pipefs_dname(struct dentry *dent, char *buffer, int buflen) | 949 | static char *pipefs_dname(struct dentry *dent, char *buffer, int buflen) |