[PATCH] CIFS: CIFSSMBRead was returning an invalid pointer in buf on socket error
[sfrench/cifs-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 ERRgeneral              31
80 #define ERRbadshare             32      /* The sharing mode specified for an
81                                            Open conflicts with existing FIDs on
82                                            the file. */
83 #define ERRlock                 33      /* A Lock request conflicted with an
84                                            existing lock or specified an
85                                            invalid mode, or an Unlock requested
86                                            attempted to remove a lock held by
87                                            another process. */
88 #define ERRunsup                50
89 #define ERRnosuchshare          67
90 #define ERRfilexists            80      /* The file named in the request
91                                            already exists. */
92 #define ERRinvparm              87
93 #define ERRdiskfull             112
94 #define ERRinvname              123
95 #define ERRinvlevel             124
96 #define ERRdirnotempty          145
97 #define ERRnotlocked            158
98 #define ERRalreadyexists        183
99 #define ERRbadpipe              230
100 #define ERRpipebusy             231
101 #define ERRpipeclosing          232
102 #define ERRnotconnected         233
103 #define ERRmoredata             234
104 #define ERReasnotsupported      282
105 #define ErrQuota                0x200   /* The operation would cause a quota
106                                            limit to be exceeded. */
107 #define ErrNotALink             0x201   /* A link operation was performed on a
108                                            pathname that was not a link. */
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
114 /* Following error codes may be generated with the ERRSRV error class.*/
115
116 #define ERRerror                1       /* Non-specific error code. It is
117                                            returned under the following
118                                            conditions: resource other than disk
119                                            space exhausted (e.g. TIDs), first
120                                            SMB command was not negotiate,
121                                            multiple negotiates attempted, and
122                                            internal server error. */
123 #define ERRbadpw                2       /* Bad password - name/password pair in
124                                            a TreeConnect or Session Setup are
125                                            invalid. */
126 #define ERRbadtype              3       /* used for indicating DFS referral
127                                            needed */
128 #define ERRaccess               4       /* The client does not have the
129                                            necessary access rights within the
130                                            specified context for requested
131                                            function. */
132 #define ERRinvtid               5       /* The Tid specified in a command was
133                                            invalid. */
134 #define ERRinvnetname           6       /* Invalid network name in tree
135                                            connect. */
136 #define ERRinvdevice            7       /* Invalid device - printer request
137                                            made to non-printer connection or
138                                            non-printer request made to printer
139                                            connection. */
140 #define ERRqfull                49      /* Print queue full (files) -- returned
141                                            by open print file. */
142 #define ERRqtoobig              50      /* Print queue full -- no space. */
143 #define ERRqeof                 51      /* EOF on print queue dump */
144 #define ERRinvpfid              52      /* Invalid print file FID. */
145 #define ERRsmbcmd               64      /* The server did not recognize the
146                                            command received. */
147 #define ERRsrverror             65      /* The server encountered an internal
148                                            error, e.g., system file
149                                            unavailable. */
150 #define ERRbadBID               66      /* (obsolete) */
151 #define ERRfilespecs            67      /* The Fid and pathname parameters
152                                            contained an invalid combination of
153                                            values. */
154 #define ERRbadLink              68      /* (obsolete) */
155 #define ERRbadpermits           69      /* The access permissions specified for
156                                            a file or directory are not a valid
157                                            combination. */
158 #define ERRbadPID               70
159 #define ERRsetattrmode          71      /* attribute (mode) is invalid */
160 #define ERRpaused               81      /* Server is paused */
161 #define ERRmsgoff               82      /* reserved - messaging off */
162 #define ERRnoroom               83      /* reserved - no room for message */
163 #define ERRrmuns                87      /* reserved - too many remote names */
164 #define ERRtimeout              88      /* operation timed out */
165 #define ERRnoresource           89      /* No resources available for request
166                                            */
167 #define ERRtoomanyuids          90      /* Too many UIDs active on this session
168                                            */
169 #define ERRbaduid               91      /* The UID is not known as a valid user
170                                            */
171 #define ERRusempx               250     /* temporarily unable to use raw */
172 #define ERRusestd               251     /* temporarily unable to use either raw
173                                            or mpx */
174 #define ERR_NOTIFY_ENUM_DIR     1024
175 #define ERRaccountexpired       2239
176 #define ERRbadclient            2240
177 #define ERRbadLogonTime         2241
178 #define ERRpasswordExpired      2242
179 #define ERRnetlogonNotStarted   2455
180 #define ERRnosupport            0xFFFF