[PATCH v2 0/9] reparse points work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Steve,

This series contains reparse point fixes and improvements for SMB2+:

- Add support for creating character/block devices, sockets and fifos
  via NFS reparse points by default.

- Add support for creating SMB symlinks via IO_REPARSE_TAG_SYMLINK
  reparse points.

- smb2_compound_op()

  * allow up to MAX_COMPOUND(5) commands in a single compound request
  * introduce SMB2_OP_{GET,SET}_REPARSE commands

- Optimisations for dentry revalidation and read/write of reparse
  points by reducing number of roundtrips.

- Fix renaming and hardlinking of reparse points

For people who pass 'mfsymlinks' and 'sfu' mount options, the
implementation is expected to avoid creating reparse points at all.

Volker Lendecke had suggested trying to create both SMB symlink and
mfsymlink in a single compound request but this series doesn't have
it.  It could be implemented later.

Signed-off-by: Paulo Alcantara (SUSE) <pc@xxxxxxxxxxxxx>
---
Changes in v2:
- Fix missing mode bits for SMB symlinks (reported by Steve)
- Fix uninitialised var warnings (reported by kernel test robot)
- Add dentry reval optimisation for SMB3 POSIX query info as well

---
Paulo Alcantara (9):
  smb: client: extend smb2_compound_op() to accept more commands
  smb: client: allow creating special files via reparse points
  smb: client: allow creating symlinks via reparse points
  smb: client: optimise reparse point querying
  smb: client: fix renaming of reparse points
  smb: client: fix hardlinking of reparse points
  smb: client: cleanup smb2_query_reparse_point()
  smb: client: optimise dentry revalidation for reparse points
  smb: client: fix missing mode bits for SMB symlinks

 fs/smb/client/cifsglob.h  |   47 +-
 fs/smb/client/cifsproto.h |   30 +-
 fs/smb/client/cifssmb.c   |   17 +-
 fs/smb/client/dir.c       |    7 +-
 fs/smb/client/file.c      |   10 +-
 fs/smb/client/inode.c     |   98 ++--
 fs/smb/client/link.c      |   29 +-
 fs/smb/client/smb2glob.h  |   26 +-
 fs/smb/client/smb2inode.c | 1054 ++++++++++++++++++++++---------------
 fs/smb/client/smb2ops.c   |  297 ++++++-----
 fs/smb/client/smb2proto.h |   29 +-
 fs/smb/client/trace.h     |    7 +-
 12 files changed, 997 insertions(+), 654 deletions(-)

-- 
2.43.0





[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux