diff options
author | Steve French <sfrench@us.ibm.com> | 2007-09-29 01:21:58 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-09-29 01:21:58 -0400 |
commit | 92ad9b93cd268371d1fc0edbd09383cc1c59be34 (patch) | |
tree | d9e34ab52bd2a6c17c6b93f827814b1fba14e52d /fs/cifs | |
parent | 7f8ed420f80c91176dfd27c8089f22cab5c9ba78 (diff) |
[CIFS] named pipe support (part 2)
Also fixes typo which could cause build break
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/CHANGES | 7 | ||||
-rw-r--r-- | fs/cifs/cifsglob.h | 2 | ||||
-rw-r--r-- | fs/cifs/cifspdu.h | 8 | ||||
-rw-r--r-- | fs/cifs/dir.c | 5 |
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 @@ | |||
1 | Version 1.51 | 1 | Version 1.51 |
2 | ------------ | 2 | ------------ |
3 | Fix memory leak in statfs when mounted to very old servers (e.g. | 3 | Fix memory leak in statfs when mounted to very old servers (e.g. |
4 | Windows 9x) | 4 | Windows 9x). Add new feature "POSIX open" which allows servers |
5 | which support the current POSIX Extensions to provide better semantics | ||
6 | (e.g. delete for open files opened with posix open). Take into | ||
7 | account umask on posix mkdir not just older style mkdir. Add | ||
8 | ability to mount to IPC$ share (which allows CIFS named pipes to be | ||
9 | opened, read and written as if they were files). | ||
5 | 10 | ||
6 | Version 1.50 | 11 | Version 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 | |||
719 | typedef struct smb_com_open_req { /* also handles create */ | 727 | typedef 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 */ |