aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2011-02-24 01:16:22 -0500
committerSteve French <sfrench@us.ibm.com>2011-05-19 10:10:48 -0400
commitc52a95545c7f8060aa4e83deca16e3414ce73000 (patch)
tree1edf070af12b9c939664c55e475bf472e941c5a8 /fs/cifs
parent0eff0e26777430bcfee1ef47bd90250858ada431 (diff)
Don't compile in unused reparse point symlink code
Recent Windows versions now create symlinks more frequently and they do use this "reparse point" symlink mechanism. We can of course do symlinks nicely to Samba and other servers which support the CIFS Unix Extensions and we can also do SFU symlinks and "client only" "MF" symlinks optionally, but for recent Windows we currently can not handle the common "reparse point" symlinks fully, removing the caller for this. We will need to extend and reenable this "reparse point" worker code in cifs and fix cifs_symlink to call this. In the interim this code has been moved to its own config option so it is not compiled in by default until cifs_symlink fixed up (and tested) to use this. CC: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r--fs/cifs/README12
-rw-r--r--fs/cifs/cifsproto.h3
-rw-r--r--fs/cifs/cifssmb.c14
3 files changed, 14 insertions, 15 deletions
diff --git a/fs/cifs/README b/fs/cifs/README
index 74ab165fc646..4a3ca0e5ca24 100644
--- a/fs/cifs/README
+++ b/fs/cifs/README
@@ -704,18 +704,6 @@ the start of smb requests and responses can be enabled via:
704 704
705 echo 1 > /proc/fs/cifs/traceSMB 705 echo 1 > /proc/fs/cifs/traceSMB
706 706
707Two other experimental features are under development. To test these
708requires enabling CONFIG_CIFS_EXPERIMENTAL
709
710 cifsacl support needed to retrieve approximated mode bits based on
711 the contents on the CIFS ACL.
712
713 lease support: cifs will check the oplock state before calling into
714 the vfs to see if we can grant a lease on a file.
715
716 DNOTIFY fcntl: needed for support of directory change
717 notification and perhaps later for file leases)
718
719Per share (per client mount) statistics are available in /proc/fs/cifs/Stats 707Per share (per client mount) statistics are available in /proc/fs/cifs/Stats
720if the kernel was configured with cifs statistics enabled. The statistics 708if the kernel was configured with cifs statistics enabled. The statistics
721represent the number of successful (ie non-zero return code from the server) 709represent the number of successful (ie non-zero return code from the server)
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index 34bbd5cf46d0..da7a4923783f 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -304,12 +304,13 @@ extern int CIFSSMBUnixQuerySymLink(const int xid,
304 struct cifsTconInfo *tcon, 304 struct cifsTconInfo *tcon,
305 const unsigned char *searchName, char **syminfo, 305 const unsigned char *searchName, char **syminfo,
306 const struct nls_table *nls_codepage); 306 const struct nls_table *nls_codepage);
307#ifdef CONFIG_CIFS_SYMLINK_EXPERIMENTAL
307extern int CIFSSMBQueryReparseLinkInfo(const int xid, 308extern int CIFSSMBQueryReparseLinkInfo(const int xid,
308 struct cifsTconInfo *tcon, 309 struct cifsTconInfo *tcon,
309 const unsigned char *searchName, 310 const unsigned char *searchName,
310 char *symlinkinfo, const int buflen, __u16 fid, 311 char *symlinkinfo, const int buflen, __u16 fid,
311 const struct nls_table *nls_codepage); 312 const struct nls_table *nls_codepage);
312 313#endif /* temporarily unused until cifs_symlink fixed */
313extern int CIFSSMBOpen(const int xid, struct cifsTconInfo *tcon, 314extern int CIFSSMBOpen(const int xid, struct cifsTconInfo *tcon,
314 const char *fileName, const int disposition, 315 const char *fileName, const int disposition,
315 const int access_flags, const int omode, 316 const int access_flags, const int omode,
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 5630282f2821..ae5e451a0d08 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -2516,7 +2516,17 @@ querySymLinkRetry:
2516 return rc; 2516 return rc;
2517} 2517}
2518 2518
2519#ifdef CONFIG_CIFS_EXPERIMENTAL 2519#ifdef CONFIG_CIFS_SYMLINK_EXPERIMENTAL
2520/*
2521 * Recent Windows versions now create symlinks more frequently
2522 * and they use the "reparse point" mechanism below. We can of course
2523 * do symlinks nicely to Samba and other servers which support the
2524 * CIFS Unix Extensions and we can also do SFU symlinks and "client only"
2525 * "MF" symlinks optionally, but for recent Windows we really need to
2526 * reenable the code below and fix the cifs_symlink callers to handle this.
2527 * In the interim this code has been moved to its own config option so
2528 * it is not compiled in by default until callers fixed up and more tested.
2529 */
2520int 2530int
2521CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon, 2531CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
2522 const unsigned char *searchName, 2532 const unsigned char *searchName,
@@ -2618,7 +2628,7 @@ qreparse_out:
2618 2628
2619 return rc; 2629 return rc;
2620} 2630}
2621#endif /* CIFS_EXPERIMENTAL */ 2631#endif /* CIFS_SYMLINK_EXPERIMENTAL */ /* BB temporarily unused */
2622 2632
2623#ifdef CONFIG_CIFS_POSIX 2633#ifdef CONFIG_CIFS_POSIX
2624 2634