From: Martin Brandenburg <martin@omnibond.com>
To: hubcap@omnibond.com, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Martin Brandenburg <martin@omnibond.com>
Subject: [PATCH 00/10] orangefs changes for 4.12
Date: Fri, 7 Apr 2017 17:17:02 -0400 [thread overview]
Message-ID: <1491599832-17773-1-git-send-email-martin@omnibond.com> (raw)
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
next reply other threads:[~2017-04-07 21:17 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-07 21:17 Martin Brandenburg [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1491599832-17773-1-git-send-email-martin@omnibond.com \
--to=martin@omnibond.com \
--cc=hubcap@omnibond.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).