Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

vfs: clean up documentation

parent e698b8a4
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ prototypes:
				struct file *, unsigned open_flag,
				umode_t create_mode, int *opened);
	int (*tmpfile) (struct inode *, struct dentry *, umode_t);
	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);

locking rules:
	all may block
@@ -98,7 +97,6 @@ fiemap: no
update_time:	no
atomic_open:	yes
tmpfile:	no
dentry_open:	no

	Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
victim.
+8 −16
Original line number Diff line number Diff line
@@ -364,7 +364,6 @@ struct inode_operations {
	int (*atomic_open)(struct inode *, struct dentry *, struct file *,
			unsigned open_flag, umode_t create_mode, int *opened);
	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
@@ -696,13 +695,6 @@ struct address_space_operations {
  	but instead uses bmap to find out where the blocks in the file
  	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
        will be called when part or all of the page is to be removed
	from the address space.  This generally corresponds to either a
@@ -1024,6 +1016,14 @@ struct dentry_operations {
	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.

	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).
	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
@@ -1080,14 +1080,6 @@ struct dentry_operations {

	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
of child dentries. Child dentries are basically like files in a
directory.