Resending this because I made a mistake folding some commits. On Mon, 24 Apr 2017, Martin Brandenburg wrote: > Mike, > > Here's what I propose for 4.12. This is modified slightly from the last > series I posted. > > When receiving directories from the userspace daemon, instead of copying > into pages allocated for that purpose, it constructs a linked list of > the trailers which come from the op handler. I didn't do this at first > because I thought they would be freed upon op_release. However they are > actually freed manually. So they are put into a list and freed when the > directory is released. > > There's also a new commit in here which provides a fast path to > orangefs_devreq_read. There's no need to take the lock if the list is > empty. I see a considerable performance increase in streaming writes > (dd if=/dev/zero of=filesystem) here on my laptop, but nothing on bigger > machines. > > Martin > The following changes since commit 4f7d029b9bf009fbee76bb10c0c4351a1870d2f3: Linux 4.11-rc7 (2017-04-16 13:00:18 -0700) are available in the git repository at: https://github.com/martinbrandenburg/linux.git for-hubcap-v4.12 for you to fetch changes up to 87ee0596be95acc37f01e4e999e9145080b47fca: orangefs: return from orangefs_devreq_read quickly if possible (2017-04-24 15:58:20 -0400) ---------------------------------------------------------------- Martin Brandenburg (12): orangefs: remove unused get_fsid_from_ino orangefs: fix bounds check for listxattr orangefs: clean up oversize xattr validation orangefs: do not set getattr_time on orangefs_lookup orangefs: rewrite readdir to fix several bugs orangefs: support llseek on directories orangefs: support very large directories orangefs: remove ORANGEFS_READDIR macros orangefs: implement statx orangefs: do not check possibly stale size on truncate orangefs: ensure the userspace component is unmounted if mount fails orangefs: return from orangefs_devreq_read quickly if possible fs/orangefs/devorangefs-req.c | 4 + fs/orangefs/dir.c | 613 +++++++++++++++++++-------------------- fs/orangefs/downcall.h | 16 +- fs/orangefs/file.c | 6 +- fs/orangefs/inode.c | 19 +- fs/orangefs/namei.c | 5 +- fs/orangefs/orangefs-dev-proto.h | 7 +- fs/orangefs/orangefs-kernel.h | 9 +- fs/orangefs/orangefs-utils.c | 98 +++---- fs/orangefs/protocol.h | 9 +- fs/orangefs/super.c | 28 +- fs/orangefs/xattr.c | 26 +- 12 files changed, 405 insertions(+), 435 deletions(-)