[lkml]   [2007]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 3/17] afs: convert afs_dir_get_page to read_kmap_page
Nate Diller <> wrote:

> but that's a lot of code to avoid a single stack allocation. The
> whole fake file pointer thing still strikes me as a little ugly, and
> you're definitely not the first one who needed this sort of hackery.
> ugh

A better way might be to stick a void * in struct file and pass that through
to readpage() and readpages() instead of the struct file *. That way, anyone
who wants the traditional arrangement can just point that extra void * at the
struct file.

Of course, I'm in favour of making it a struct key * like this:

struct address_space_operations {
int (*readpage)(struct key *, struct page *);
int (*readpages)(struct key *, struct address_space *,
struct list_head *, unsigned);

struct file {
struct key *f_key;

struct page *filemap_nopage(struct vm_area_struct *area, ...)
struct file *file = area->vm_file;
error = mapping->a_ops->readpage(file->f_key, page);

But I'm not sure the NFS crew, for instance, would be happy with that. Maybe
passing file->private_data through would do. That's basically what NFS and
FUSE, for instance, want, and it would also do for AFS.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2007-04-12 21:47    [W:0.069 / U:42.332 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site