Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
0cac643c
Commit
0cac643c
authored
Jun 30, 2016
by
Miklos Szeredi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vfs: clean up documentation
Signed-off-by:
Miklos Szeredi
<
mszeredi@redhat.com
>
parent
e698b8a4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
18 deletions
+8
-18
Documentation/filesystems/Locking
Documentation/filesystems/Locking
+0
-2
Documentation/filesystems/vfs.txt
Documentation/filesystems/vfs.txt
+8
-16
No files found.
Documentation/filesystems/Locking
View file @
0cac643c
...
@@ -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.
...
...
Documentation/filesystems/vfs.txt
View file @
0cac643c
...
@@ -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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment