aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/cifs')
-rw-r--r--fs/cifs/cifs_spnego.c1
-rw-r--r--fs/cifs/cifsacl.c1
-rw-r--r--fs/cifs/cifsfs.c7
-rw-r--r--fs/cifs/file.c8
-rw-r--r--fs/cifs/smb1ops.c2
-rw-r--r--fs/cifs/smb2maperror.c2
6 files changed, 8 insertions, 13 deletions
diff --git a/fs/cifs/cifs_spnego.c b/fs/cifs/cifs_spnego.c
index a3e932547617..f4cf200b3c76 100644
--- a/fs/cifs/cifs_spnego.c
+++ b/fs/cifs/cifs_spnego.c
@@ -62,7 +62,6 @@ cifs_spnego_key_destroy(struct key *key)
62struct key_type cifs_spnego_key_type = { 62struct key_type cifs_spnego_key_type = {
63 .name = "cifs.spnego", 63 .name = "cifs.spnego",
64 .instantiate = cifs_spnego_key_instantiate, 64 .instantiate = cifs_spnego_key_instantiate,
65 .match = user_match,
66 .destroy = cifs_spnego_key_destroy, 65 .destroy = cifs_spnego_key_destroy,
67 .describe = user_describe, 66 .describe = user_describe,
68}; 67};
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
index 7ff866dbb89e..6d00c419cbae 100644
--- a/fs/cifs/cifsacl.c
+++ b/fs/cifs/cifsacl.c
@@ -84,7 +84,6 @@ static struct key_type cifs_idmap_key_type = {
84 .instantiate = cifs_idmap_key_instantiate, 84 .instantiate = cifs_idmap_key_instantiate,
85 .destroy = cifs_idmap_key_destroy, 85 .destroy = cifs_idmap_key_destroy,
86 .describe = user_describe, 86 .describe = user_describe,
87 .match = user_match,
88}; 87};
89 88
90static char * 89static char *
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 889b98455750..9d7996e8e793 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -813,7 +813,8 @@ static loff_t cifs_llseek(struct file *file, loff_t offset, int whence)
813 return generic_file_llseek(file, offset, whence); 813 return generic_file_llseek(file, offset, whence);
814} 814}
815 815
816static int cifs_setlease(struct file *file, long arg, struct file_lock **lease) 816static int
817cifs_setlease(struct file *file, long arg, struct file_lock **lease, void **priv)
817{ 818{
818 /* 819 /*
819 * Note that this is called by vfs setlease with i_lock held to 820 * Note that this is called by vfs setlease with i_lock held to
@@ -829,7 +830,7 @@ static int cifs_setlease(struct file *file, long arg, struct file_lock **lease)
829 if (arg == F_UNLCK || 830 if (arg == F_UNLCK ||
830 ((arg == F_RDLCK) && CIFS_CACHE_READ(CIFS_I(inode))) || 831 ((arg == F_RDLCK) && CIFS_CACHE_READ(CIFS_I(inode))) ||
831 ((arg == F_WRLCK) && CIFS_CACHE_WRITE(CIFS_I(inode)))) 832 ((arg == F_WRLCK) && CIFS_CACHE_WRITE(CIFS_I(inode))))
832 return generic_setlease(file, arg, lease); 833 return generic_setlease(file, arg, lease, priv);
833 else if (tlink_tcon(cfile->tlink)->local_lease && 834 else if (tlink_tcon(cfile->tlink)->local_lease &&
834 !CIFS_CACHE_READ(CIFS_I(inode))) 835 !CIFS_CACHE_READ(CIFS_I(inode)))
835 /* 836 /*
@@ -840,7 +841,7 @@ static int cifs_setlease(struct file *file, long arg, struct file_lock **lease)
840 * knows that the file won't be changed on the server by anyone 841 * knows that the file won't be changed on the server by anyone
841 * else. 842 * else.
842 */ 843 */
843 return generic_setlease(file, arg, lease); 844 return generic_setlease(file, arg, lease, priv);
844 else 845 else
845 return -EAGAIN; 846 return -EAGAIN;
846} 847}
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index dc3c7e6aff1f..8f7b40fd8f3b 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -3568,15 +3568,9 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
3568 lru_cache_add_file(page); 3568 lru_cache_add_file(page);
3569 unlock_page(page); 3569 unlock_page(page);
3570 page_cache_release(page); 3570 page_cache_release(page);
3571 if (rc == -EAGAIN)
3572 list_add_tail(&page->lru, &tmplist);
3573 } 3571 }
3572 /* Fallback to the readpage in error/reconnect cases */
3574 kref_put(&rdata->refcount, cifs_readdata_release); 3573 kref_put(&rdata->refcount, cifs_readdata_release);
3575 if (rc == -EAGAIN) {
3576 /* Re-add pages to the page_list and retry */
3577 list_splice(&tmplist, page_list);
3578 continue;
3579 }
3580 break; 3574 break;
3581 } 3575 }
3582 3576
diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
index 1a6df4b03f67..52131d8cb4d5 100644
--- a/fs/cifs/smb1ops.c
+++ b/fs/cifs/smb1ops.c
@@ -586,7 +586,7 @@ cifs_query_path_info(const unsigned int xid, struct cifs_tcon *tcon,
586 tmprc = CIFS_open(xid, &oparms, &oplock, NULL); 586 tmprc = CIFS_open(xid, &oparms, &oplock, NULL);
587 if (tmprc == -EOPNOTSUPP) 587 if (tmprc == -EOPNOTSUPP)
588 *symlink = true; 588 *symlink = true;
589 else 589 else if (tmprc == 0)
590 CIFSSMBClose(xid, tcon, fid.netfid); 590 CIFSSMBClose(xid, tcon, fid.netfid);
591 } 591 }
592 592
diff --git a/fs/cifs/smb2maperror.c b/fs/cifs/smb2maperror.c
index af59d03db492..8257a5a97cc0 100644
--- a/fs/cifs/smb2maperror.c
+++ b/fs/cifs/smb2maperror.c
@@ -256,6 +256,8 @@ static const struct status_to_posix_error smb2_error_map_table[] = {
256 {STATUS_DLL_MIGHT_BE_INCOMPATIBLE, -EIO, 256 {STATUS_DLL_MIGHT_BE_INCOMPATIBLE, -EIO,
257 "STATUS_DLL_MIGHT_BE_INCOMPATIBLE"}, 257 "STATUS_DLL_MIGHT_BE_INCOMPATIBLE"},
258 {STATUS_STOPPED_ON_SYMLINK, -EOPNOTSUPP, "STATUS_STOPPED_ON_SYMLINK"}, 258 {STATUS_STOPPED_ON_SYMLINK, -EOPNOTSUPP, "STATUS_STOPPED_ON_SYMLINK"},
259 {STATUS_IO_REPARSE_TAG_NOT_HANDLED, -EOPNOTSUPP,
260 "STATUS_REPARSE_NOT_HANDLED"},
259 {STATUS_DEVICE_REQUIRES_CLEANING, -EIO, 261 {STATUS_DEVICE_REQUIRES_CLEANING, -EIO,
260 "STATUS_DEVICE_REQUIRES_CLEANING"}, 262 "STATUS_DEVICE_REQUIRES_CLEANING"},
261 {STATUS_DEVICE_DOOR_OPEN, -EIO, "STATUS_DEVICE_DOOR_OPEN"}, 263 {STATUS_DEVICE_DOOR_OPEN, -EIO, "STATUS_DEVICE_DOOR_OPEN"},