1. 25 Feb, 2020 2 commits
    • Tigran Mkrtchyan's avatar
      nfs4: getattr should return lease time configured on state handler · 1cf016b0
      Tigran Mkrtchyan authored
      Motivation:
      if server uses another non default value for leas time, then value
      returned by GETATTR is incorrect.
      
      Modification:
      introduce NFSv4StateHandler#getLeaseTime and use it to get the value of
      FATTR4_LEASE_TIME attribute.
      
      Result:
      a server with non default lease time will return the correct value on
      getattr.
      
      Acked-by: Albert Rossi
      Target: master
      1cf016b0
    • Tigran Mkrtchyan's avatar
      nfs4: update NFSv4StateHandler to store lease time as seconds · 248c8779
      Tigran Mkrtchyan authored
      Motivation:
      according to rfc7530, nfs_lease4 is 32 bit integer and expressed in
      seconds. This doesn't match with current internals of NFSv4StateHandler.
      
      Modification:
      update NFSv4StateHandler to store lease time as seconds.
      
      Result:
      no visible changes. Ground work for up-coming changes.
      
      Acked-by: Albert Rossi
      Target: master
      248c8779
  2. 24 Feb, 2020 2 commits
    • Tigran Mkrtchyan's avatar
      mount: add missing message placeholder in log a statement · 540ec29b
      Tigran Mkrtchyan authored
      Acked-by: Paul Millar
      Acked-by: Lea Morschel
      Target: master
      540ec29b
    • Tigran Mkrtchyan's avatar
      nfs4: make extended NFSv4StateHandler constructor public · 06151918
      Tigran Mkrtchyan authored
      Motivation:
      the NFSv4StateHandler(leaseTime, instanceId, clientStore)  constructor
      can be used by NFS servers to control NFSv4StateHandler instance
      creation. As extended constructor is package protected, thus control is
      unavailable to other modules.
      
      Modification:
      make extended NFSv4StateHandler constructor public. Updated javadoc.
      
      Result:
      more control on how instance of NFSv4StateHandler created.
      
      Acked-by: Paul Millar
      Target: master
      06151918
  3. 07 Feb, 2020 1 commit
  4. 24 Jan, 2020 1 commit
    • Tigran Mkrtchyan's avatar
      src: rename org.dcache.utils => org.dcache.nfs.utils · dfbb6721
      Tigran Mkrtchyan authored
      Motivation:
      Java9 module subsystem doesn't allow different one package to exists
      in two jars files. As org.dcache.utils is too generic and exists in
      other dcache components as well, we have to avoid it's usage.
      
      Modification:
      rename org.dcache.utils package to org.dcache.nfs.util
      
      Result:
      initial step in a direction to provide Java9 compatible modules
      
      Acked-by: Lea Morschel
      Target: master
      dfbb6721
  5. 17 Dec, 2019 1 commit
    • Tigran Mkrtchyan's avatar
      pom: filter out naming related Spotbugs issues · 7e7bee6b
      Tigran Mkrtchyan authored
      Motivation:
      As nfs4j uses autogenerated code, filter out naming issues to
      make critical problems more visible.
      
      Modification:
      introduce spotbugs-exclude.xml file containing warnings that
      should be ignored.
      
      Result:
      critical problems more visible
      
      Acked-by: Paul Millar
      Acked-by: Lea Morschel
      Target: master
      7e7bee6b
  6. 13 Dec, 2019 1 commit
    • Tigran Mkrtchyan's avatar
      flexfiles: remove Serializable marker from autogenerated classes · 88180c95
      Tigran Mkrtchyan authored
      Motivation:
       - we should never serialize xdr objects
       - some classes are composites of non Serializables, thus can't be
         serialized at all
       - SpotBugs generates a warning
      
      Modification:
      remove Serializable marker from autogenerated classes
      
      Result:
      cleaner code. No visible changes.
      
      Acked-by: Olufemi Adeyemi
      Acked-by: Lea Morschel
      Target: master
      88180c95
  7. 12 Dec, 2019 1 commit
  8. 04 Dec, 2019 1 commit
  9. 03 Dec, 2019 1 commit
    • Tigran Mkrtchyan's avatar
      nfs: add initial implementation of xattr support · a1f08100
      Tigran Mkrtchyan authored
      Motivation:
      
      Modification:
      pass nfs requests to backend file system implementation. The list operation
      for now assumes that reply will fit into a single reply.
      
      Result:
      minimal support of file extended attribute over NFS
      
      Acked-by: Paul Millar
      Target: master
      a1f08100
  10. 29 Nov, 2019 1 commit
    • Tigran Mkrtchyan's avatar
      vfs: invalidate stat cache on setxattr and removexattr · 5b41bd7b
      Tigran Mkrtchyan authored
      Motivation:
      as extended attribute cache on the client side bound to regular attribute
      cache, changes of extended attributes must invalidate attribute cache to
      propagate changes to other clients.
      
      Modification:
      invalidate stat cache on setxattr and removexattr
      
      Result:
      maintain cache consistency
      
      Acked-by: Paul Millar
      Acked-by: Lea Morschel
      Target: master
      5b41bd7b
  11. 25 Nov, 2019 2 commits
    • Tigran Mkrtchyan's avatar
      nfsv4: sort constants defined in nfs4_prot.java · eedb5e65
      Tigran Mkrtchyan authored
      for better visual perception group by domains and
      order by values all constants defined in nfs4_prot.java
      
      Acked-by: Paul Millar
      Target: master
      eedb5e65
    • Tigran Mkrtchyan's avatar
      nfs4: add xattr related operation stubs · 03c7147c
      Tigran Mkrtchyan authored
      Motivation:
      Before nfs server can fully support extended attributes, the related operations
      sold be accepted by the server.
      
      Modification:
      Implement xattr related operation stubs that currently do nothing.
      
      Result:
      ground work for xattr support
      
      Acked-by: Lea Morschel
      Target: master
      03c7147c
  12. 22 Nov, 2019 2 commits
    • Tigran Mkrtchyan's avatar
      nfs4: add initial support `support_xattr` attribute · 6eaebcd9
      Tigran Mkrtchyan authored
      Motivation:
      As client might chack for support of extended attribute, let server
      nicely reply 'not supported'
      
      Modification:
      introduce FATTR4_XATTR_SUPPORT bit in bitmask of support attributes.
      Reply hard-coded 'not supported' as long as backend file system can't be
      queried for this information.
      
      Result:
      client can auto-discover (not yet) that whatever extended attributes are
      supported or not.
      
      Acked-by: Lea Morschel
      Acked-by: Paul Millar
      Target: master
      6eaebcd9
    • Tigran Mkrtchyan's avatar
      vfs: introduce get/set/list/removeXattr methods · 1c80fb61
      Tigran Mkrtchyan authored
      Motivation:
      In order NFS server to support extended attributes, they should be exposed
      by under laying vfs interface.
      
      Modification:
      introduce VirtualFileSystem#get/set/list/removeXattr methods with default
      implementations. Update PseudoFs to check permissions and bypass
      requests to backing implementation.
      
      To read or list extended attributes, read permission on the file is required
      To set or remove extended attributes, write permissions on the file is required
      
      Result:
      ground work for extended attribute support.
      
      Acked-by: Lea Morschel
      Acked-by: Paul Millar
      Target: master
      1c80fb61
  13. 19 Nov, 2019 3 commits
    • Tigran Mkrtchyan's avatar
      nfs: define error codes defined in rfc8276 (xattr) · 2b803c0d
      Tigran Mkrtchyan authored
      Motivation;
      The rfc8276 that specifies extended attribute support over NFS defines
      new error codes that should be handled by servers.
      
      Modification:
      define new error codes and add corresponding exceptions.
      
      Result:
      Ground work for xattr support.
      
      Acked-by: Paul Millar
      Acked-by: Lea Morschel
      Target: master
      2b803c0d
    • Tigran Mkrtchyan's avatar
      docs: add rfc8276.txt · fa8ebf93
      Tigran Mkrtchyan authored
      fa8ebf93
    • Tigran Mkrtchyan's avatar
      test: enforce default file permission for DummyVFS · 52d1fdfd
      Tigran Mkrtchyan authored
      Motivation:
      As we don't explicitly create fs-root object, the fs
      default value will be used as initial mode. An explicit
      value will make tests more stable and don't rely on umask
      value of the environment.
      
      Modification:
      enforce default file permission for DummyVFS
      
      Result:
      environment independent test behavior.
      
      Acked-by: Paul Millar
      Acked-by: Lea Morschel
      Target: master
      52d1fdfd
  14. 18 Nov, 2019 2 commits
  15. 30 Jul, 2019 1 commit
  16. 29 Jul, 2019 1 commit
    • Tigran Mkrtchyan's avatar
      pom: add profile to sign artifacts · 56387f78
      Tigran Mkrtchyan authored
      Motivation:
      The are many reasons why we should sign our artifacts. The main two are:
      
        - allow library users to verify who have release the jars
        - maven central accepts only signed artifacts (and this is the goal)
      
      Modification:
      Add profile that will be activated by maven release plugin or manually
      with `-P sign-artifacts` option.
      
      Result:
      produced artifacts will be released.
      
      Acked-by: Jürgen Starek
      Target: master, 0.19
      56387f78
  17. 25 Jul, 2019 1 commit
    • Tigran Mkrtchyan's avatar
      nfs4: initialize newly created state ids with sequence zero · 0d385e48
      Tigran Mkrtchyan authored
      Motivation:
      typically, every time when file's open/lock/layout state id is used to
      change file's state, the sequence number is incremented. Thus newly
      created stateid should have sequence zero, as it will be bumped during
      processing. As currently sequence number initialized with one (1), fresh
      created lock and layout state ids have sequence 2 when sent to the
      clients.
      
      Modification:
      Initialize sequence number of newly created state ids with zero.
      Increment open state id's sequence number for all state ids.
      
      Result:
      better spec compliance, as lock and layout state ids will start with
      sequence 1.
      
      Acked-by: Jürgen Starek
      Target: master, 0.19
      0d385e48
  18. 19 Jul, 2019 1 commit
  19. 17 Jul, 2019 5 commits
  20. 15 Jul, 2019 1 commit
  21. 10 Jul, 2019 3 commits
  22. 09 Jul, 2019 3 commits
  23. 08 Jul, 2019 3 commits
    • Tigran Mkrtchyan's avatar
      test: add OperationLAYOUTCOMMITTest · c37b7168
      Tigran Mkrtchyan authored
      Motivation:
      improve test coverage
      
      Modification:
      Add OperationLAYOUTCOMMITTest to test leyout commit with read-only open
      state.
      
      Result:
      better code coverage.
      
      Acked-by: Paul Millar
      Target: master
      c37b7168
    • Tigran Mkrtchyan's avatar
      nfs-client: send layoutcommit if required · 9d9a9300
      Tigran Mkrtchyan authored
      Acked-by: Paul Millar
      Target: master
      9d9a9300
    • Tigran Mkrtchyan's avatar
      nfs41: introduce NFSv41DeviceManager#layoutCommit method · 1a383866
      Tigran Mkrtchyan authored
      Motivation:
      Current implementation of layout commit operation assumes that
      only action that have to be done is updating file size. However,
      the back-end system may perform other actions as well if required.
      
      Modification:
      Introduce NFSv41DeviceManager#layoutCommit method. The driver
      implementation should take care to update file size, if required. The
      sanity check of a valid state it is sill performed as a part of genetic
      request processing.
      
      Result:
      The layout driver gets possibility to handle commit operation.
      
      Acked-by: Albert Rossi
      Acked-by: Paul Millar
      Target: master
      1a383866