[PATCH] cifs: Fix mapping of EMLINK case
authorSteve French <smfrench@austin.rr.com>
Fri, 29 Apr 2005 05:41:10 +0000 (22:41 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 29 Apr 2005 05:41:10 +0000 (22:41 -0700)
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/cifs/CHANGES
fs/cifs/cifsfs.h
fs/cifs/netmisc.c
fs/cifs/smberr.h

index 3d61d96d740787e6b56a2709ca905c5a373fb50c..21a246473a910264fa847e6e472803ff879ee77b 100644 (file)
@@ -1,3 +1,7 @@
+Version 1.34
+------------
+Fix error mapping of the TOO_MANY_LINKS (hardlinks) case.
+
 Version 1.33
 ------------
 Fix caching problem, in which readdir of directory containing a file
index 8f742796a627d46e142ae0eb8ba563857bc74c7c..d00b3bfe1a5213830c6aec6c39f56d0910be390a 100644 (file)
@@ -96,5 +96,5 @@ extern ssize_t        cifs_getxattr(struct dentry *, const char *, void *, size_t);
 extern ssize_t cifs_listxattr(struct dentry *, char *, size_t);
 extern int cifs_ioctl (struct inode * inode, struct file * filep,
                       unsigned int command, unsigned long arg);
-#define CIFS_VERSION   "1.33"
+#define CIFS_VERSION   "1.34"
 #endif                         /* _CIFSFS_H */
index dfaabc8d8fb6ad8caedc34c5a30f4eec3555a0cc..a92af41d44119a2c464f3b905b181f4445c9f1db 100644 (file)
@@ -78,6 +78,7 @@ static const struct smb_to_posix_error mapping_table_ERRDOS[] = {
        {ErrQuota, -EDQUOT},
        {ErrNotALink, -ENOLINK},
        {ERRnetlogonNotStarted,-ENOPROTOOPT},
+       {ErrTooManyLinks,-EMLINK},
        {0, 0}
 };
 
@@ -742,7 +743,7 @@ static const struct {
        ERRDOS, 182, NT_STATUS_DRIVER_ORDINAL_NOT_FOUND}, {
        ERRDOS, 127, NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND}, {
        ERRDOS, 288, NT_STATUS_RESOURCE_NOT_OWNED}, {
-       ERRHRD, ERRgeneral, NT_STATUS_TOO_MANY_LINKS}, {
+       ERRDOS, ErrTooManyLinks, NT_STATUS_TOO_MANY_LINKS}, {
        ERRHRD, ERRgeneral, NT_STATUS_QUOTA_LIST_INCONSISTENT}, {
        ERRHRD, ERRgeneral, NT_STATUS_FILE_IS_OFFLINE}, {
        ERRDOS, 21, 0xc000026e}, {
index 1b53dcd0f2ebc3e13f9f30bb3170692009b3cdc7..cd41c67ff8d3b6a4aa75012b38fbbcfe28dc67bb 100644 (file)
 #define ErrNotALink            0x201   /* A link operation was performed on a
                                           pathname that was not a link. */
 
+/* Below errors are used internally (do not come over the wire) for passthrough
+   from STATUS codes to POSIX only  */
+#define ErrTooManyLinks         0xFFFE   
+
 /* Following error codes may be generated with the ERRSRV error class.*/
 
 #define ERRerror               1       /* Non-specific error code. It is