cifs: don't allow cifs_reconnect to exit with NULL socket pointer
[linux-2.6.git] / fs / cifs / smberr.h
1 /*
2  *   fs/cifs/smberr.h
3  *
4  *   Copyright (c) International Business Machines  Corp., 2002,2004
5  *   Author(s): Steve French (sfrench@us.ibm.com)
6  *
7  *   See Error Codes section of the SNIA CIFS Specification
8  *   for more information
9  *
10  *   This library is free software; you can redistribute it and/or modify
11  *   it under the terms of the GNU Lesser General Public License as published
12  *   by the Free Software Foundation; either version 2.1 of the License, or
13  *   (at your option) any later version.
14  *
15  *   This library is distributed in the hope that it will be useful,
16  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
18  *   the GNU Lesser General Public License for more details.
19  *
20  *   You should have received a copy of the GNU Lesser General Public License
21  *   along with this library; if not, write to the Free Software
22  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  */
24
25 #define SUCCESS 0x00    /* The request was successful. */
26 #define ERRDOS  0x01    /* Error is from the core DOS operating system set */
27 #define ERRSRV  0x02    /* Error is generated by the file server daemon */
28 #define ERRHRD  0x03    /* Error is a hardware error. */
29 #define ERRCMD  0xFF    /* Command was not in the "SMB" format. */
30
31 /* The following error codes may be generated with the SUCCESS error class.*/
32
33 /*#define SUCCESS       0       The request was successful. */
34
35 /* The following error codes may be generated with the ERRDOS error class.*/
36
37 #define ERRbadfunc              1       /* Invalid function. The server did not
38                                            recognize or could not perform a
39                                            system call generated by the server,
40                                            e.g., set the DIRECTORY attribute on
41                                            a data file, invalid seek mode. */
42 #define ERRbadfile              2       /* File not found. The last component
43                                            of a file's pathname could not be
44                                            found. */
45 #define ERRbadpath              3       /* Directory invalid. A directory
46                                            component in a pathname could not be
47                                            found. */
48 #define ERRnofids               4       /* Too many open files. The server has
49                                            no file handles available. */
50 #define ERRnoaccess             5       /* Access denied, the client's context
51                                            does not permit the requested
52                                            function. This includes the
53                                            following conditions: invalid rename
54                                            command, write to Fid open for read
55                                            only, read on Fid open for write
56                                            only, attempt to delete a non-empty
57                                            directory */
58 #define ERRbadfid               6       /* Invalid file handle. The file handle
59                                            specified was not recognized by the
60                                            server. */
61 #define ERRbadmcb               7       /* Memory control blocks destroyed. */
62 #define ERRnomem                8       /* Insufficient server memory to
63                                            perform the requested function. */
64 #define ERRbadmem               9       /* Invalid memory block address. */
65 #define ERRbadenv               10      /* Invalid environment. */
66 #define ERRbadformat            11      /* Invalid format. */
67 #define ERRbadaccess            12      /* Invalid open mode. */
68 #define ERRbaddata              13      /* Invalid data (generated only by
69                                            IOCTL calls within the server). */
70 #define ERRbaddrive             15      /* Invalid drive specified. */
71 #define ERRremcd                16      /* A Delete Directory request attempted
72                                            to remove the server's current
73                                            directory. */
74 #define ERRdiffdevice           17      /* Not same device (e.g., a cross
75                                            volume rename was attempted */
76 #define ERRnofiles              18      /* A File Search command can find no
77                                            more files matching the specified
78                                            criteria. */
79 #define ERRwriteprot            19      /* media is write protected */
80 #define ERRgeneral              31
81 #define ERRbadshare             32      /* The sharing mode specified for an
82                                            Open conflicts with existing FIDs on
83                                            the file. */
84 #define ERRlock                 33      /* A Lock request conflicted with an
85                                            existing lock or specified an
86                                            invalid mode, or an Unlock requested
87                                            attempted to remove a lock held by
88                                            another process. */
89 #define ERRunsup                50
90 #define ERRnosuchshare          67
91 #define ERRfilexists            80      /* The file named in the request
92                                            already exists. */
93 #define ERRinvparm              87
94 #define ERRdiskfull             112
95 #define ERRinvname              123
96 #define ERRinvlevel             124
97 #define ERRdirnotempty          145
98 #define ERRnotlocked            158
99 #define ERRcancelviolation      173
100 #define ERRalreadyexists        183
101 #define ERRbadpipe              230
102 #define ERRpipebusy             231
103 #define ERRpipeclosing          232
104 #define ERRnotconnected         233
105 #define ERRmoredata             234
106 #define ERReasnotsupported      282
107 #define ErrQuota                0x200   /* The operation would cause a quota
108                                            limit to be exceeded. */
109 #define ErrNotALink             0x201   /* A link operation was performed on a
110                                            pathname that was not a link. */
111
112 /* Below errors are used internally (do not come over the wire) for passthrough
113    from STATUS codes to POSIX only  */
114 #define ERRsymlink              0xFFFD
115 #define ErrTooManyLinks         0xFFFE
116
117 /* Following error codes may be generated with the ERRSRV error class.*/
118
119 #define ERRerror                1       /* Non-specific error code. It is
120                                            returned under the following
121                                            conditions: resource other than disk
122                                            space exhausted (e.g. TIDs), first
123                                            SMB command was not negotiate,
124                                            multiple negotiates attempted, and
125                                            internal server error. */
126 #define ERRbadpw                2       /* Bad password - name/password pair in
127                                            a TreeConnect or Session Setup are
128                                            invalid. */
129 #define ERRbadtype              3       /* used for indicating DFS referral
130                                            needed */
131 #define ERRaccess               4       /* The client does not have the
132                                            necessary access rights within the
133                                            specified context for requested
134                                            function. */
135 #define ERRinvtid               5       /* The Tid specified in a command was
136                                            invalid. */
137 #define ERRinvnetname           6       /* Invalid network name in tree
138                                            connect. */
139 #define ERRinvdevice            7       /* Invalid device - printer request
140                                            made to non-printer connection or
141                                            non-printer request made to printer
142                                            connection. */
143 #define ERRqfull                49      /* Print queue full (files) -- returned
144                                            by open print file. */
145 #define ERRqtoobig              50      /* Print queue full -- no space. */
146 #define ERRqeof                 51      /* EOF on print queue dump */
147 #define ERRinvpfid              52      /* Invalid print file FID. */
148 #define ERRsmbcmd               64      /* The server did not recognize the
149                                            command received. */
150 #define ERRsrverror             65      /* The server encountered an internal
151                                            error, e.g., system file
152                                            unavailable. */
153 #define ERRbadBID               66      /* (obsolete) */
154 #define ERRfilespecs            67      /* The Fid and pathname parameters
155                                            contained an invalid combination of
156                                            values. */
157 #define ERRbadLink              68      /* (obsolete) */
158 #define ERRbadpermits           69      /* The access permissions specified for
159                                            a file or directory are not a valid
160                                            combination. */
161 #define ERRbadPID               70
162 #define ERRsetattrmode          71      /* attribute (mode) is invalid */
163 #define ERRpaused               81      /* Server is paused */
164 #define ERRmsgoff               82      /* reserved - messaging off */
165 #define ERRnoroom               83      /* reserved - no room for message */
166 #define ERRrmuns                87      /* reserved - too many remote names */
167 #define ERRtimeout              88      /* operation timed out */
168 #define ERRnoresource           89      /* No resources available for request
169                                            */
170 #define ERRtoomanyuids          90      /* Too many UIDs active on this session
171                                            */
172 #define ERRbaduid               91      /* The UID is not known as a valid user
173                                            */
174 #define ERRusempx               250     /* temporarily unable to use raw */
175 #define ERRusestd               251     /* temporarily unable to use either raw
176                                            or mpx */
177 #define ERR_NOTIFY_ENUM_DIR     1024
178 #define ERRnoSuchUser           2238    /* user account does not exist */
179 #define ERRaccountexpired       2239
180 #define ERRbadclient            2240    /* can not logon from this client */
181 #define ERRbadLogonTime         2241    /* logon hours do not allow this */
182 #define ERRpasswordExpired      2242
183 #define ERRnetlogonNotStarted   2455
184 #define ERRnosupport            0xFFFF