lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri,  7 Apr 2017 17:17:02 -0400
From:   Martin Brandenburg <martin@...ibond.com>
To:     hubcap@...ibond.com, linux-fsdevel@...r.kernel.org,
        linux-kernel@...r.kernel.org
Cc:     Martin Brandenburg <martin@...ibond.com>
Subject: [PATCH 00/10] orangefs changes for 4.12

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ