mbox series

[PATCHSET,RFC,v2,0/5] fs: Support for LOOKUP_NONBLOCK / RESOLVE_NONBLOCK

Message ID 20201212165105.902688-1-axboe@kernel.dk (mailing list archive)
Headers show
Series fs: Support for LOOKUP_NONBLOCK / RESOLVE_NONBLOCK | expand

Message

Jens Axboe Dec. 12, 2020, 4:51 p.m. UTC
Hi,

After the discussion yesterday, I reworked some of the bits since the v1
posting:

- Improved the 1/5 cleanup patch, based on Al's feedback.

- 2/5 is much cleaner now, also based on Al's feedback. For later
  patches, we also need the same LOOKUP_NONBLOCK failure case in
  unlazy_child(), so I added that. Also fixed the LOOKUP_NONBLOCK
  check in path_init().

- Add mnt_want_write_trylock(). Since we already have
  sb_start_write_trylock(), this is pretty trivial.

- Add 4/5 which handles LOOKUP_NONBLOCK for open_last_lookups(),
  do_open(), and do_tmpfile(). O_TRUNC is expressly not allowed
  with LOOKUP_NONBLOCK/RESOLVE_NONBLOCK, so I didn't want to
  attempt to wire up nonblocking semantics there.

- Fixed comment in 5/5, and added the O_TRUNC check there too. No
  further changes there. I'll commit to writing the change for the
  openat2(2) man page as well, as well as some test cases, once we make
  some more progress on the kernel side.

Ran this through some basic testing with both io_uring (that patch
I left out of this series) and openat2(), and works for me...