aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2007-09-29 01:21:58 -0400
committerSteve French <sfrench@us.ibm.com>2007-09-29 01:21:58 -0400
commit92ad9b93cd268371d1fc0edbd09383cc1c59be34 (patch)
treed9e34ab52bd2a6c17c6b93f827814b1fba14e52d
parent7f8ed420f80c91176dfd27c8089f22cab5c9ba78 (diff)
[CIFS] named pipe support (part 2)
Also fixes typo which could cause build break Signed-off-by: Steve French <sfrench@us.ibm.com>
-rw-r--r--fs/cifs/CHANGES7
-rw-r--r--fs/cifs/cifsglob.h2
-rw-r--r--fs/cifs/cifspdu.h8
-rw-r--r--fs/cifs/dir.c5
4 files changed, 17 insertions, 5 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index ea359a0038d9..c8ad87de4a78 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -1,7 +1,12 @@
1Version 1.51 1Version 1.51
2------------ 2------------
3Fix memory leak in statfs when mounted to very old servers (e.g. 3Fix memory leak in statfs when mounted to very old servers (e.g.
4Windows 9x) 4Windows 9x). Add new feature "POSIX open" which allows servers
5which support the current POSIX Extensions to provide better semantics
6(e.g. delete for open files opened with posix open). Take into
7account umask on posix mkdir not just older style mkdir. Add
8ability to mount to IPC$ share (which allows CIFS named pipes to be
9opened, read and written as if they were files).
5 10
6Version 1.50 11Version 1.50
7------------ 12------------
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index f55be8efa26d..3fb046be9c0b 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -342,7 +342,7 @@ struct cifsFileInfo {
342 struct list_head llist; /* list of byte range locks we have. */ 342 struct list_head llist; /* list of byte range locks we have. */
343 unsigned closePend:1; /* file is marked to close */ 343 unsigned closePend:1; /* file is marked to close */
344 unsigned invalidHandle:1; /* file closed via session abend */ 344 unsigned invalidHandle:1; /* file closed via session abend */
345 unsigned messageMode:1 /* for pipes: is message or byte mode */ 345 unsigned messageMode:1; /* for pipes: message vs byte mode */
346 atomic_t wrtPending; /* handle in use - defer close */ 346 atomic_t wrtPending; /* handle in use - defer close */
347 struct semaphore fh_sem; /* prevents reopen race after dead ses*/ 347 struct semaphore fh_sem; /* prevents reopen race after dead ses*/
348 char *search_resume_name; /* BB removeme BB */ 348 char *search_resume_name; /* BB removeme BB */
diff --git a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h
index e975ce46115d..d2f0cf23bbba 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/cifs/cifspdu.h
@@ -716,6 +716,14 @@ typedef struct smb_com_findclose_req {
716#define REQ_OPENDIRONLY 0x00000008 716#define REQ_OPENDIRONLY 0x00000008
717#define REQ_EXTENDED_INFO 0x00000010 717#define REQ_EXTENDED_INFO 0x00000010
718 718
719/* File type */
720#define DISK_TYPE 0x0000
721#define BYTE_PIPE_TYPE 0x0001
722#define MESSAGE_PIPE_TYPE 0x0002
723#define PRINTER_TYPE 0x0003
724#define COMM_DEV_TYPE 0x0004
725#define UNKNOWN_TYPE 0xFFFF
726
719typedef struct smb_com_open_req { /* also handles create */ 727typedef struct smb_com_open_req { /* also handles create */
720 struct smb_hdr hdr; /* wct = 24 */ 728 struct smb_hdr hdr; /* wct = 24 */
721 __u8 AndXCommand; 729 __u8 AndXCommand;
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 99321ab439d2..793404b10925 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -269,7 +269,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
269 CIFSSMBClose(xid, pTcon, fileHandle); 269 CIFSSMBClose(xid, pTcon, fileHandle);
270 } else if (newinode) { 270 } else if (newinode) {
271 pCifsFile = 271 pCifsFile =
272 kzalloc(sizeof (struct cifsFileInfo), GFP_KERNEL); 272 kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
273 273
274 if (pCifsFile == NULL) 274 if (pCifsFile == NULL)
275 goto cifs_create_out; 275 goto cifs_create_out;
@@ -450,8 +450,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
450 450
451 xid = GetXid(); 451 xid = GetXid();
452 452
453 cFYI(1, 453 cFYI(1, (" parent inode = 0x%p name is: %s and dentry = 0x%p",
454 (" parent inode = 0x%p name is: %s and dentry = 0x%p",
455 parent_dir_inode, direntry->d_name.name, direntry)); 454 parent_dir_inode, direntry->d_name.name, direntry));
456 455
457 /* check whether path exists */ 456 /* check whether path exists */