Some cleanups:

  remove unused get_fsid_from_ino
  fix bounds check for listxattr
  clean up oversize xattr validation
  do not set getattr_time on orangefs_lookup
  return from orangefs_devreq_read quickly if possible
  do not wait for timeout if umounting
  handle zero size write in debugfs

Bug fixes:

  do not check possibly stale size on truncate
  ensure the userspace component is unmounted if mount fails
  total reimplementation of dir.c

New feature:

  implement statx

The new implementation of dir.c is kind of a big deal, all new
code. It has been posted to fs-devel during the previous rc period,
we didn't get much review or feedback from there, but it has been reviewed
very heavily here, so much so that we have two entire versions of the
reimplementation. Not only does the new implementation fix some
xfstests, but it passes all the new tests we made here that involve
seeking and rewinding and giant directories and long file names.
The new dir code has three patches itself:

  skip forward to the next directory entry if seek is short
  invalidate stored directory on seek
  count directory pieces correctly
orangefs: count directory pieces correctly

A large directory full of differently sized file names triggered this.
Most directories, even very large directories with shorter names, would
be lucky enough to fit in one server response.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
1 file changed