cifs: add mount option to enable local caching
Add a mount option 'fsc' to enable local caching on CIFS. I considered adding a separate debug bit for caching, but it appears that debugging would be relatively easier with the normal CIFS_INFO level. As the cifs-utils (userspace) changes are not done yet, this patch enables 'fsc' by default to enable testing. Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de> Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
56698236e1
commit
fa1df75d4d
2 changed files with 9 additions and 0 deletions
|
@ -35,6 +35,7 @@
|
|||
#define CIFS_MOUNT_DYNPERM 0x1000 /* allow in-memory only mode setting */
|
||||
#define CIFS_MOUNT_NOPOSIXBRL 0x2000 /* mandatory not posix byte range lock */
|
||||
#define CIFS_MOUNT_NOSSYNC 0x4000 /* don't do slow SMBflush on every sync*/
|
||||
#define CIFS_MOUNT_FSCACHE 0x8000 /* local caching enabled */
|
||||
|
||||
struct cifs_sb_info {
|
||||
struct cifsTconInfo *tcon; /* primary mount */
|
||||
|
|
|
@ -98,6 +98,7 @@ struct smb_vol {
|
|||
bool noblocksnd:1;
|
||||
bool noautotune:1;
|
||||
bool nostrictsync:1; /* do not force expensive SMBflush on every sync */
|
||||
bool fsc:1; /* enable fscache */
|
||||
unsigned int rsize;
|
||||
unsigned int wsize;
|
||||
bool sockopt_tcp_nodelay:1;
|
||||
|
@ -843,6 +844,9 @@ cifs_parse_mount_options(char *options, const char *devname,
|
|||
/* default to using server inode numbers where available */
|
||||
vol->server_ino = 1;
|
||||
|
||||
/* XXX: default to fsc for testing until mount.cifs pieces are done */
|
||||
vol->fsc = 1;
|
||||
|
||||
if (!options)
|
||||
return 1;
|
||||
|
||||
|
@ -1332,6 +1336,8 @@ cifs_parse_mount_options(char *options, const char *devname,
|
|||
printk(KERN_WARNING "CIFS: Mount option noac not "
|
||||
"supported. Instead set "
|
||||
"/proc/fs/cifs/LookupCacheEnabled to 0\n");
|
||||
} else if (strnicmp(data, "fsc", 3) == 0) {
|
||||
vol->fsc = true;
|
||||
} else
|
||||
printk(KERN_WARNING "CIFS: Unknown mount option %s\n",
|
||||
data);
|
||||
|
@ -2463,6 +2469,8 @@ static void setup_cifs_sb(struct smb_vol *pvolume_info,
|
|||
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
|
||||
if (pvolume_info->dynperm)
|
||||
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
|
||||
if (pvolume_info->fsc)
|
||||
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_FSCACHE;
|
||||
if (pvolume_info->direct_io) {
|
||||
cFYI(1, "mounting share using direct i/o");
|
||||
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
|
||||
|
|
Loading…
Reference in a new issue