Commit 0cac643c authored by Miklos Szeredi's avatar Miklos Szeredi

vfs: clean up documentation

Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent e698b8a4
...@@ -69,7 +69,6 @@ prototypes: ...@@ -69,7 +69,6 @@ prototypes:
struct file *, unsigned open_flag, struct file *, unsigned open_flag,
umode_t create_mode, int *opened); umode_t create_mode, int *opened);
int (*tmpfile) (struct inode *, struct dentry *, umode_t); int (*tmpfile) (struct inode *, struct dentry *, umode_t);
int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
locking rules: locking rules:
all may block all may block
...@@ -98,7 +97,6 @@ fiemap: no ...@@ -98,7 +97,6 @@ fiemap: no
update_time: no update_time: no
atomic_open: yes atomic_open: yes
tmpfile: no tmpfile: no
dentry_open: no
Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
victim. victim.
......
...@@ -364,7 +364,6 @@ struct inode_operations { ...@@ -364,7 +364,6 @@ struct inode_operations {
int (*atomic_open)(struct inode *, struct dentry *, struct file *, int (*atomic_open)(struct inode *, struct dentry *, struct file *,
unsigned open_flag, umode_t create_mode, int *opened); unsigned open_flag, umode_t create_mode, int *opened);
int (*tmpfile) (struct inode *, struct dentry *, umode_t); int (*tmpfile) (struct inode *, struct dentry *, umode_t);
int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
}; };
Again, all methods are called without any locks being held, unless Again, all methods are called without any locks being held, unless
...@@ -696,13 +695,6 @@ struct address_space_operations { ...@@ -696,13 +695,6 @@ struct address_space_operations {
but instead uses bmap to find out where the blocks in the file but instead uses bmap to find out where the blocks in the file
are and uses those addresses directly. are and uses those addresses directly.
dentry_open: *WARNING: probably going away soon, do not use!* This is an
alternative to f_op->open(), the difference is that this method may open
a file not necessarily originating from the same filesystem as the one
i_op->open() was called on. It may be useful for stacking filesystems
which want to allow native I/O directly on underlying files.
invalidatepage: If a page has PagePrivate set, then invalidatepage invalidatepage: If a page has PagePrivate set, then invalidatepage
will be called when part or all of the page is to be removed will be called when part or all of the page is to be removed
from the address space. This generally corresponds to either a from the address space. This generally corresponds to either a
...@@ -1024,6 +1016,14 @@ struct dentry_operations { ...@@ -1024,6 +1016,14 @@ struct dentry_operations {
at the end of the buffer, and returns a pointer to the first char. at the end of the buffer, and returns a pointer to the first char.
dynamic_dname() helper function is provided to take care of this. dynamic_dname() helper function is provided to take care of this.
Example :
static char *pipefs_dname(struct dentry *dent, char *buffer, int buflen)
{
return dynamic_dname(dentry, buffer, buflen, "pipe:[%lu]",
dentry->d_inode->i_ino);
}
d_automount: called when an automount dentry is to be traversed (optional). d_automount: called when an automount dentry is to be traversed (optional).
This should create a new VFS mount record and return the record to the This should create a new VFS mount record and return the record to the
caller. The caller is supplied with a path parameter giving the caller. The caller is supplied with a path parameter giving the
...@@ -1080,14 +1080,6 @@ struct dentry_operations { ...@@ -1080,14 +1080,6 @@ struct dentry_operations {
This method is never called with both non-NULL inode and non-zero flags. This method is never called with both non-NULL inode and non-zero flags.
Example :
static char *pipefs_dname(struct dentry *dent, char *buffer, int buflen)
{
return dynamic_dname(dentry, buffer, buflen, "pipe:[%lu]",
dentry->d_inode->i_ino);
}
Each dentry has a pointer to its parent dentry, as well as a hash list Each dentry has a pointer to its parent dentry, as well as a hash list
of child dentries. Child dentries are basically like files in a of child dentries. Child dentries are basically like files in a
directory. directory.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment