aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve French <smfrench@austin.rr.com>2005-04-29 01:41:10 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-29 01:41:10 -0400
commit11aa0149d0e49ee1791735ec4ae3079b27b9a68e (patch)
treeb08d4fbdf4cb46820898b71a1e55139c676c1b1f
parentcd63499cbe37e53e6cc084c8a35d911a4613c797 (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/CHANGES4
-rw-r--r--fs/cifs/cifsfs.h2
-rw-r--r--fs/cifs/netmisc.c3
-rw-r--r--fs/cifs/smberr.h4
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 @@
1Version 1.34
2------------
3Fix error mapping of the TOO_MANY_LINKS (hardlinks) case.
4
1Version 1.33 5Version 1.33
2------------ 6------------
3Fix caching problem, in which readdir of directory containing a file 7Fix 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);
96extern ssize_t cifs_listxattr(struct dentry *, char *, size_t); 96extern ssize_t cifs_listxattr(struct dentry *, char *, size_t);
97extern int cifs_ioctl (struct inode * inode, struct file * filep, 97extern 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