[PATCH] int (*readpage)(struct file *, struct page *);

From: Roman V. Shaposhnick (roman@yellow.pdmi.ras.ru)
Date: Mon May 08 2000 - 14:13:23 EST


Linus, Al, and all others,

please take a look at the yet another readpage patch and keep in mind,
that it tries to do the following:

* all address space operations get a "struct file *" pointer[1]. It will
  contain a hint from kernel when it is available and NULL if it is not.
  E.g.
         1. inside block_symlink: fs/buffer.c
         2. "inside" page_getlink: fs/namei.c

* the address space operations should use page->mapping->host to access
  their private address_space data. Thus it won't hurt when we get
  NULL as a first argument.

* the VFS helper functions in fs/buffer.c assume that page->mapping->host
  points to the corresponding inode.
  
* for network filesystems, or other special fs that don't use
  fs/buffer.c, page->mapping->host can point to arbitrary structures.

Please also note that after this change only two filesystems ( fs/nfs and
fs/smbfs ) use the first argument of readpage in a non trivial way.

This patch has been successfully applied to pre7-6. All filesystems were
compiled and several tested.

Finally, I hope, that this time there are no horrible design flaws and the patch
would be able to creep into pre7-[7|8].

Thanks,
Roman.

[1] I wonder why struct dentry * is needed for a 'writepage' despite of it
already has struct file * as a first parameter.



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 15 2000 - 21:00:11 EST