If no major issues are found in review or in our testing, we intend to submit this during the next merge window. The goal of all this is to significantly reduce the number of network requests made to the OrangeFS First the xattr cache is needed because otherwise we make a ton of getxattr calls from security_inode_need_killpriv. Then there's some reorganization so inode changes can be cached. Finally, we enable write_inode. Then remove the old readpages. Next there's some reorganization to support readpage/writepage. Finally, enable readpage/writepage which is fairly straightforward except for the need to separate writes from different uid/gid pairs due to the design of our server. Martin Brandenburg (17): orangefs: implement xattr cache orangefs: do not invalidate attributes on inode create orangefs: simply orangefs_inode_getattr interface orangefs: update attributes rather than relying on server orangefs: hold i_lock during inode_getattr orangefs: set up and use backing_dev_info orangefs: let setattr write to cached inode orangefs: reorganize setattr functions to track attribute changes orangefs: remove orangefs_readpages orangefs: service ops done for writeback are not killable orangefs: migrate to generic_file_read_iter orangefs: implement writepage orangefs: skip inode writeout if nothing to write orangefs: write range tracking orangefs: avoid fsync service operation on flush orangefs: use kmem_cache for orangefs_write_request orangefs: implement writepages fs/orangefs/acl.c | 4 +- fs/orangefs/file.c | 193 ++++-------- fs/orangefs/inode.c | 576 +++++++++++++++++++++++++++------- fs/orangefs/namei.c | 41 ++- fs/orangefs/orangefs-cache.c | 24 +- fs/orangefs/orangefs-kernel.h | 56 +++- fs/orangefs/orangefs-mod.c | 10 +- fs/orangefs/orangefs-utils.c | 181 +++++------ fs/orangefs/super.c | 38 ++- fs/orangefs/waitqueue.c | 18 +- fs/orangefs/xattr.c | 104 ++++++ 11 files changed, 839 insertions(+), 406 deletions(-) -- 2.19.0