Hard links are not used very often nowdays, but they do still have their uses and this is currently the most often requested improvement for SSHFS. To detect hard links the st_nlink, st_dev and st_ino attributes are usually used. I'll be attaching patches that add a hard link operation and extend the protocol to include all the common UNIX file attributes.
Created attachment 1601 [details] hard link protocol extension for sftp This patch that adds support for the creation of hard links over SFTP.
Created attachment 1602 [details] add protocol extension to ATTR message This patch adds all the missing commonly used UNIX attributes: st_dev, st_ino, st_nlink, st_rdev, st_blocks, st_blksize, st_ctime. In addition it extends st_atime and st_mtime to 64bits, and adds nanosecond resolution to all three timestamps. This is implemented as an extension to the ATTR message. This patch alone is sufficient for SSHFS to be able to use these attributes. The following two patches optimize the bandwidth use for this extension.
Created attachment 1603 [details] add attribute configuration message This patch adds a new extended request with which the client can request which attributes it wants to receive. By default only the basic attributes are transferred, but the client can request that any subset of the basic or extra attributes to be sent. Attributes can be selected separately for STAT and READDIR requests. Also there's a flag to turn off the generation of long names in READDIR requests. The server also sends the attributes it can actually support in the attribute configuration reply so the client may make decisions based on the server's capabilities.
Created attachment 1604 [details] optimize attribute sending This patch turns off sending unnecessary attributes: - the nanosecond part of timestamps if they are zero - the 32bit atime and mtime if the 64bit atime/mtime are sent
Just wondering: are there any plans to integrate these patches into a release at some point?
We are freezing for the OpenSSH 5.6 release. Retargetting these bugs to the next release.
Created attachment 1971 [details] /home/djm/sftp-hardlink.diff revised patch
hard link patch is submitted and will be released in OpenSSH 5.7
It looks like the original patch was also providing more data for the stat() call, which is nice when performing directory walks on a remote filesystem. Any chance for this stuf to be included some day?
IMO, this bug should be closed as resolved, as the patch was included in version 5.7, right? Who is to do this?
Coming here from https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1769655.html. I would love to have nanosecond file timestamp support, and extra attributes, in *OpenSSH*. It seems to me that only the first patch here "/home/djm/sftp-hardlink.diff" got included. The other patches didn't. Could they be included?