[PATCH] update Documentation/filesystems/vfs.txt (second part)

From: Borislav Petkov
Date: Sun Jul 01 2007 - 03:00:50 EST


---
From: Borislav Petkov <bbpetkov@xxxxxxxx>

Update the rest of Documentation/filesystems/vfs.txt

Signed-off-by: Borislav Petkov <bbpetkov@xxxxxxxx>

--

Index: linux-2.6.22-rc6/Documentation/filesystems/vfs.txt
===================================================================
--- linux-2.6.22-rc6/Documentation/filesystems/vfs.txt.orig 2007-07-01 08:47:29.000000000 +0200
+++ linux-2.6.22-rc6/Documentation/filesystems/vfs.txt 2007-07-01 08:47:48.000000000 +0200
@@ -193,7 +193,7 @@
-----------------------

This describes how the VFS can manipulate the superblock of your
-filesystem. As of kernel 2.6.13, the following members are defined:
+filesystem. As of kernel 2.6.22, the following members are defined:

struct super_operations {
struct inode *(*alloc_inode)(struct super_block *sb);
@@ -216,8 +216,6 @@
void (*clear_inode) (struct inode *);
void (*umount_begin) (struct super_block *);

- void (*sync_inodes) (struct super_block *sb,
- struct writeback_control *wbc);
int (*show_options)(struct seq_file *, struct vfsmount *);

ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
@@ -300,9 +298,6 @@

umount_begin: called when the VFS is unmounting a filesystem.

- sync_inodes: called when the VFS is writing out dirty data associated with
- a superblock.
-
show_options: called by the VFS to show mount options for /proc/<pid>/mounts.

quota_read: called by the VFS to read from filesystem quota file.
@@ -324,7 +319,7 @@
-----------------------

This describes how the VFS can manipulate an inode in your
-filesystem. As of kernel 2.6.13, the following members are defined:
+filesystem. As of kernel 2.6.22, the following members are defined:

struct inode_operations {
int (*create) (struct inode *,struct dentry *,int, struct nameidata *);
@@ -348,6 +343,7 @@
ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
ssize_t (*listxattr) (struct dentry *, char *, size_t);
int (*removexattr) (struct dentry *, const char *);
+ void (*truncate_range)(struct inode *, loff_t, loff_t);
};

Again, all methods are called without any locks being held, unless
@@ -444,6 +440,9 @@
removexattr: called by the VFS to remove an extended attribute from
a file. This method is called by removexattr(2) system call.

+ truncate_range: a method provided by the underlying filesystem to truncate a
+ range of blocks , i.e. punch a hole somewhere in a file.
+

The Address Space Object
========================
@@ -522,7 +521,7 @@
-------------------------------

This describes how the VFS can manipulate mapping of a file to page cache in
-your filesystem. As of kernel 2.6.16, the following members are defined:
+your filesystem. As of kernel 2.6.22, the following members are defined:

struct address_space_operations {
int (*writepage)(struct page *page, struct writeback_control *wbc);
@@ -543,6 +542,7 @@
int);
/* migrate the contents of a page to the specified target */
int (*migratepage) (struct page *, struct page *);
+ int (*launder_page) (struct page *);
};

writepage: called by the VM to write a dirty page to backing store.
@@ -689,6 +689,10 @@
transfer any private data across and update any references
that it has to the page.

+ launder_page: Called before freeing a page - it writes back the dirty page. To
+ prevent redirtying the page, it is kept locked during the whole
+ operation.
+
The File Object
===============

@@ -699,9 +703,10 @@
----------------------

This describes how the VFS can manipulate an open file. As of kernel
-2.6.17, the following members are defined:
+2.6.22, the following members are defined:

struct file_operations {
+ struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
@@ -728,10 +733,8 @@
int (*check_flags)(int);
int (*dir_notify)(struct file *filp, unsigned long arg);
int (*flock) (struct file *, int, struct file_lock *);
- ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, size_t, unsigned
-int);
- ssize_t (*splice_read)(struct file *, struct pipe_inode_info *, size_t, unsigned
-int);
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, size_t, unsigned int);
+ ssize_t (*splice_read)(struct file *, struct pipe_inode_info *, size_t, unsigned int);
};

Again, all methods are called without any locks being held, unless
--
Regards/Gruß,
Boris.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/