linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] orangefs changes for 4.12
@ 2017-04-07 21:17 Martin Brandenburg
  2017-04-07 21:17 ` [PATCH 01/10] orangefs: remove unused get_fsid_from_ino Martin Brandenburg
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Martin Brandenburg @ 2017-04-07 21:17 UTC (permalink / raw)
  To: hubcap, linux-fsdevel, linux-kernel; +Cc: Martin Brandenburg

Mike,

Here are the OrangeFS changes I intend for the 4.12 merge window.

The biggest change here is my readdir work.  The old readdir code was
fragile in a number of ways relating to small buffers passed to
getdents.  The new code fixes all of that by separating making server
requests for more data from responding to the user.  OrangeFS cannot
list directories from an arbitrary offset, so this saves the directory
as it is received from the server.  Then it can continue from the point
that the user buffer got too full.  Before if all of the entries did not
fit, it would do a new server request on the next call and skip those
that did not fit.  This also handles directory seeking, which was
completely ignored in the old code.

I increased the number of directory entries to request in a server
request from 96 to 512, which is the OrangeFS client maximum.  The limit
of 96 appears to have been chosen because it is small enough that most
directories will fit in the buffer passed to getdents.

I've included some patches for statx.  Depending on how much testing we
can get done over the next couple weeks, we may want to hold these for
4.13.  It is very helpful to OrangeFS's performance to skip fetching
size if it is not needed.  I can't help but wonder if I've missed
something.  It passes xfstests, but I don't think it's been through all
our internal tests.

Then there are some miscellaneous fixes.

Martin Brandenburg (10):
  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

 fs/orangefs/dir.c                | 598 ++++++++++++++++++---------------------
 fs/orangefs/downcall.h           |  21 +-
 fs/orangefs/file.c               |   6 +-
 fs/orangefs/inode.c              |  18 +-
 fs/orangefs/namei.c              |   5 +-
 fs/orangefs/orangefs-dev-proto.h |   7 +-
 fs/orangefs/orangefs-kernel.h    |   9 +-
 fs/orangefs/orangefs-utils.c     |  63 +++--
 fs/orangefs/protocol.h           |   9 +-
 fs/orangefs/xattr.c              |  26 +-
 10 files changed, 363 insertions(+), 399 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-04-07 21:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-07 21:17 [PATCH 00/10] orangefs changes for 4.12 Martin Brandenburg
2017-04-07 21:17 ` [PATCH 01/10] orangefs: remove unused get_fsid_from_ino Martin Brandenburg
2017-04-07 21:17 ` [PATCH 02/10] orangefs: fix bounds check for listxattr Martin Brandenburg
2017-04-07 21:17 ` [PATCH 03/10] orangefs: clean up oversize xattr validation Martin Brandenburg
2017-04-07 21:17 ` [PATCH 04/10] orangefs: do not set getattr_time on orangefs_lookup Martin Brandenburg
2017-04-07 21:17 ` [PATCH 05/10] orangefs: rewrite readdir to fix several bugs Martin Brandenburg
2017-04-07 21:17 ` [PATCH 06/10] orangefs: support llseek on directories Martin Brandenburg
2017-04-07 21:17 ` [PATCH 07/10] orangefs: support very large directories Martin Brandenburg
2017-04-07 21:17 ` [PATCH 08/10] orangefs: remove ORANGEFS_READDIR macros Martin Brandenburg
2017-04-07 21:17 ` [PATCH 09/10] orangefs: implement statx Martin Brandenburg
2017-04-07 21:17 ` [PATCH 10/10] orangefs: do not check possibly stale size on truncate Martin Brandenburg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).