[PATCH 00/18] orangefs: page cache

From: Martin Brandenburg
Date: Tue Dec 12 2017 - 13:34:40 EST


The first five patches were sent up two weeks ago.

https://marc.info/?l=linux-fsdevel&m=151190064825337&w=2

There is a bug in the original "implement vm_ops->fault" which is fixed
here. When expanding generic_file_readonly_mmap, I neglected to include
the test for VM_SHARED and VM_MAYWRITE. The test is removed later in
"implement write through the page cache," but if only the first five are
accepted for the next kernel, they should be taken from here.

I sent this up some time ago

https://marc.info/?l=linux-fsdevel&m=149548681910978&w=2

I hope the code is faily self-explanatory. This isn't quite in a fully
finished or tested state, but it's starting to come together.
Unfortunately most of the changes from last time are fixes for subtle
bugs and are rebased in, which makes them hard to see.

This is significantly more stable than it was six months ago, but I'm
still worried about how it will act when run for days, weeks, months at
a time and across multiple machines. This is the next step in my
testing.

I'd appreciate any reviews, even if just to tell me that I've done
everything completely wrong.

Martin Brandenburg (18):
orangefs: open code short single-use functions
orangefs: implement vm_ops->fault
orangefs: do not invalidate attributes on inode create
orangefs: do not invalidate attribute cache on setattr
orangefs: reverse sense of revalidate is-inode-stale test
orangefs: move orangefs_address_operations to file.c
orangefs: remove orangefs_readpages
orangefs: make orangefs_inode_read static
orangefs: only set a_ops for regular files
orangefs: BUG_ON if i_mode invalid
orangefs: remove mapping_nrpages macro
orangefs: set up and use backing_dev_info
orangefs: inodes linger in cache
orangefs: implement direct_IO for the read case
orangefs: call generic_file_read_iter
orangefs: implement write through the page cache
orangefs: no more explicit setattr
orangefs: implement xattr cache

fs/orangefs/acl.c | 11 +-
fs/orangefs/dcache.c | 17 +-
fs/orangefs/file.c | 353 +++++++++++++++++++++++-------------------
fs/orangefs/inode.c | 259 ++++---------------------------
fs/orangefs/namei.c | 75 ++++++---
fs/orangefs/orangefs-kernel.h | 19 +--
fs/orangefs/orangefs-utils.c | 11 +-
fs/orangefs/super.c | 60 ++++++-
fs/orangefs/symlink.c | 2 -
fs/orangefs/xattr.c | 62 ++++++++
10 files changed, 409 insertions(+), 460 deletions(-)

--
2.15.1