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 Original line Diff line number Diff line
@@ -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
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.
+8 −16
Original line number Original line Diff line number Diff line
@@ -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 {
  	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 {
	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 {


	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.