[CIFS] named pipe support (part 2)
Also fixes typo which could cause build break Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
7f8ed420f8
commit
92ad9b93cd
|
@ -1,7 +1,12 @@
|
||||||
Version 1.51
|
Version 1.51
|
||||||
------------
|
------------
|
||||||
Fix memory leak in statfs when mounted to very old servers (e.g.
|
Fix memory leak in statfs when mounted to very old servers (e.g.
|
||||||
Windows 9x)
|
Windows 9x). Add new feature "POSIX open" which allows servers
|
||||||
|
which support the current POSIX Extensions to provide better semantics
|
||||||
|
(e.g. delete for open files opened with posix open). Take into
|
||||||
|
account umask on posix mkdir not just older style mkdir. Add
|
||||||
|
ability to mount to IPC$ share (which allows CIFS named pipes to be
|
||||||
|
opened, read and written as if they were files).
|
||||||
|
|
||||||
Version 1.50
|
Version 1.50
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -342,7 +342,7 @@ struct cifsFileInfo {
|
||||||
struct list_head llist; /* list of byte range locks we have. */
|
struct list_head llist; /* list of byte range locks we have. */
|
||||||
unsigned closePend:1; /* file is marked to close */
|
unsigned closePend:1; /* file is marked to close */
|
||||||
unsigned invalidHandle:1; /* file closed via session abend */
|
unsigned invalidHandle:1; /* file closed via session abend */
|
||||||
unsigned messageMode:1 /* for pipes: is message or byte mode */
|
unsigned messageMode:1; /* for pipes: message vs byte mode */
|
||||||
atomic_t wrtPending; /* handle in use - defer close */
|
atomic_t wrtPending; /* handle in use - defer close */
|
||||||
struct semaphore fh_sem; /* prevents reopen race after dead ses*/
|
struct semaphore fh_sem; /* prevents reopen race after dead ses*/
|
||||||
char *search_resume_name; /* BB removeme BB */
|
char *search_resume_name; /* BB removeme BB */
|
||||||
|
|
|
@ -716,6 +716,14 @@ typedef struct smb_com_findclose_req {
|
||||||
#define REQ_OPENDIRONLY 0x00000008
|
#define REQ_OPENDIRONLY 0x00000008
|
||||||
#define REQ_EXTENDED_INFO 0x00000010
|
#define REQ_EXTENDED_INFO 0x00000010
|
||||||
|
|
||||||
|
/* File type */
|
||||||
|
#define DISK_TYPE 0x0000
|
||||||
|
#define BYTE_PIPE_TYPE 0x0001
|
||||||
|
#define MESSAGE_PIPE_TYPE 0x0002
|
||||||
|
#define PRINTER_TYPE 0x0003
|
||||||
|
#define COMM_DEV_TYPE 0x0004
|
||||||
|
#define UNKNOWN_TYPE 0xFFFF
|
||||||
|
|
||||||
typedef struct smb_com_open_req { /* also handles create */
|
typedef struct smb_com_open_req { /* also handles create */
|
||||||
struct smb_hdr hdr; /* wct = 24 */
|
struct smb_hdr hdr; /* wct = 24 */
|
||||||
__u8 AndXCommand;
|
__u8 AndXCommand;
|
||||||
|
|
|
@ -269,7 +269,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
|
||||||
CIFSSMBClose(xid, pTcon, fileHandle);
|
CIFSSMBClose(xid, pTcon, fileHandle);
|
||||||
} else if (newinode) {
|
} else if (newinode) {
|
||||||
pCifsFile =
|
pCifsFile =
|
||||||
kzalloc(sizeof (struct cifsFileInfo), GFP_KERNEL);
|
kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
|
||||||
|
|
||||||
if (pCifsFile == NULL)
|
if (pCifsFile == NULL)
|
||||||
goto cifs_create_out;
|
goto cifs_create_out;
|
||||||
|
@ -450,8 +450,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
|
||||||
|
|
||||||
xid = GetXid();
|
xid = GetXid();
|
||||||
|
|
||||||
cFYI(1,
|
cFYI(1, (" parent inode = 0x%p name is: %s and dentry = 0x%p",
|
||||||
(" parent inode = 0x%p name is: %s and dentry = 0x%p",
|
|
||||||
parent_dir_inode, direntry->d_name.name, direntry));
|
parent_dir_inode, direntry->d_name.name, direntry));
|
||||||
|
|
||||||
/* check whether path exists */
|
/* check whether path exists */
|
||||||
|
|
Reference in New Issue