aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/dir.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2005-07-14 19:25:12 -0400
committerSteve French <sfrench@us.ibm.com>2005-07-14 19:25:12 -0400
commitd7245c2ccf14cde2023273c1ec246732d96e2c27 (patch)
tree657d7b5c9431b6117659f9638f4121ac237d4c5f /fs/cifs/dir.c
parent4887c61811c2283162684d7f9075b7676ef6a9bf (diff)
[CIFS] Add compat with SFU (part 1)
This should help the case of creating fifos and other special files to servers which do not support the Unix extensions. Signed-off-by: Steve French (sfrench@us.ibm.com) Thanks to Martin Koeppe for his suggestions and good analysis
Diffstat (limited to 'fs/cifs/dir.c')
-rw-r--r--fs/cifs/dir.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 9360d8fb9ef7..0d5e27fec92b 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -209,7 +209,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
209 CIFS_MOUNT_MAP_SPECIAL_CHR); 209 CIFS_MOUNT_MAP_SPECIAL_CHR);
210 } 210 }
211 else { 211 else {
212 /* BB implement via Windows security descriptors */ 212 /* BB implement mode setting via Windows security descriptors */
213 /* eg CIFSSMBWinSetPerms(xid,pTcon,full_path,mode,-1,-1,local_nls);*/ 213 /* eg CIFSSMBWinSetPerms(xid,pTcon,full_path,mode,-1,-1,local_nls);*/
214 /* could set r/o dos attribute if mode & 0222 == 0 */ 214 /* could set r/o dos attribute if mode & 0222 == 0 */
215 } 215 }
@@ -326,6 +326,16 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode, dev_t dev
326 if(rc == 0) 326 if(rc == 0)
327 d_instantiate(direntry, newinode); 327 d_instantiate(direntry, newinode);
328 } 328 }
329 } else {
330 if((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) &&
331 (special_file(mode))) {
332
333 cFYI(1,("sfu compat create special file"));
334 /* Attributes = cpu_to_le32(ATTR_SYSTEM);
335 rc = CIFSSMBOpen(xid, pTcon, full_path, disposition, ...); */
336
337 /* add code here to set EAs */
338 }
329 } 339 }
330 340
331 kfree(full_path); 341 kfree(full_path);