diff options
author | Steve French <smfrench@austin.rr.com> | 2005-04-29 01:41:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-29 01:41:10 -0400 |
commit | 11aa0149d0e49ee1791735ec4ae3079b27b9a68e (patch) | |
tree | b08d4fbdf4cb46820898b71a1e55139c676c1b1f | |
parent | cd63499cbe37e53e6cc084c8a35d911a4613c797 (diff) |
[PATCH] cifs: Fix mapping of EMLINK case
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/cifs/CHANGES | 4 | ||||
-rw-r--r-- | fs/cifs/cifsfs.h | 2 | ||||
-rw-r--r-- | fs/cifs/netmisc.c | 3 | ||||
-rw-r--r-- | fs/cifs/smberr.h | 4 |
4 files changed, 11 insertions, 2 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES index 3d61d96d7407..21a246473a91 100644 --- a/fs/cifs/CHANGES +++ b/fs/cifs/CHANGES | |||
@@ -1,3 +1,7 @@ | |||
1 | Version 1.34 | ||
2 | ------------ | ||
3 | Fix error mapping of the TOO_MANY_LINKS (hardlinks) case. | ||
4 | |||
1 | Version 1.33 | 5 | Version 1.33 |
2 | ------------ | 6 | ------------ |
3 | Fix caching problem, in which readdir of directory containing a file | 7 | Fix caching problem, in which readdir of directory containing a file |
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h index 8f742796a627..d00b3bfe1a52 100644 --- a/fs/cifs/cifsfs.h +++ b/fs/cifs/cifsfs.h | |||
@@ -96,5 +96,5 @@ extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t); | |||
96 | extern ssize_t cifs_listxattr(struct dentry *, char *, size_t); | 96 | extern ssize_t cifs_listxattr(struct dentry *, char *, size_t); |
97 | extern int cifs_ioctl (struct inode * inode, struct file * filep, | 97 | extern int cifs_ioctl (struct inode * inode, struct file * filep, |
98 | unsigned int command, unsigned long arg); | 98 | unsigned int command, unsigned long arg); |
99 | #define CIFS_VERSION "1.33" | 99 | #define CIFS_VERSION "1.34" |
100 | #endif /* _CIFSFS_H */ | 100 | #endif /* _CIFSFS_H */ |
diff --git a/fs/cifs/netmisc.c b/fs/cifs/netmisc.c index dfaabc8d8fb6..a92af41d4411 100644 --- a/fs/cifs/netmisc.c +++ b/fs/cifs/netmisc.c | |||
@@ -78,6 +78,7 @@ static const struct smb_to_posix_error mapping_table_ERRDOS[] = { | |||
78 | {ErrQuota, -EDQUOT}, | 78 | {ErrQuota, -EDQUOT}, |
79 | {ErrNotALink, -ENOLINK}, | 79 | {ErrNotALink, -ENOLINK}, |
80 | {ERRnetlogonNotStarted,-ENOPROTOOPT}, | 80 | {ERRnetlogonNotStarted,-ENOPROTOOPT}, |
81 | {ErrTooManyLinks,-EMLINK}, | ||
81 | {0, 0} | 82 | {0, 0} |
82 | }; | 83 | }; |
83 | 84 | ||
@@ -742,7 +743,7 @@ static const struct { | |||
742 | ERRDOS, 182, NT_STATUS_DRIVER_ORDINAL_NOT_FOUND}, { | 743 | ERRDOS, 182, NT_STATUS_DRIVER_ORDINAL_NOT_FOUND}, { |
743 | ERRDOS, 127, NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND}, { | 744 | ERRDOS, 127, NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND}, { |
744 | ERRDOS, 288, NT_STATUS_RESOURCE_NOT_OWNED}, { | 745 | ERRDOS, 288, NT_STATUS_RESOURCE_NOT_OWNED}, { |
745 | ERRHRD, ERRgeneral, NT_STATUS_TOO_MANY_LINKS}, { | 746 | ERRDOS, ErrTooManyLinks, NT_STATUS_TOO_MANY_LINKS}, { |
746 | ERRHRD, ERRgeneral, NT_STATUS_QUOTA_LIST_INCONSISTENT}, { | 747 | ERRHRD, ERRgeneral, NT_STATUS_QUOTA_LIST_INCONSISTENT}, { |
747 | ERRHRD, ERRgeneral, NT_STATUS_FILE_IS_OFFLINE}, { | 748 | ERRHRD, ERRgeneral, NT_STATUS_FILE_IS_OFFLINE}, { |
748 | ERRDOS, 21, 0xc000026e}, { | 749 | ERRDOS, 21, 0xc000026e}, { |
diff --git a/fs/cifs/smberr.h b/fs/cifs/smberr.h index 1b53dcd0f2eb..cd41c67ff8d3 100644 --- a/fs/cifs/smberr.h +++ b/fs/cifs/smberr.h | |||
@@ -107,6 +107,10 @@ | |||
107 | #define ErrNotALink 0x201 /* A link operation was performed on a | 107 | #define ErrNotALink 0x201 /* A link operation was performed on a |
108 | pathname that was not a link. */ | 108 | pathname that was not a link. */ |
109 | 109 | ||
110 | /* Below errors are used internally (do not come over the wire) for passthrough | ||
111 | from STATUS codes to POSIX only */ | ||
112 | #define ErrTooManyLinks 0xFFFE | ||
113 | |||
110 | /* Following error codes may be generated with the ERRSRV error class.*/ | 114 | /* Following error codes may be generated with the ERRSRV error class.*/ |
111 | 115 | ||
112 | #define ERRerror 1 /* Non-specific error code. It is | 116 | #define ERRerror 1 /* Non-specific error code. It is |