summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-02 11:34:44 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-02 11:34:44 -0400
commit389865899579c374e5532ca906f1c9425fe1dd5e (patch)
tree042ed567845ee832d076b863b66493c4db0e2857
parenteb60cbd0074d435bf50462b8b3d65c189248c1a0 (diff)
downloadlongterm-queue-4.8-389865899579c374e5532ca906f1c9425fe1dd5e.tar.gz
ceph: context refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/ceph-try-getting-buffer-capability-for-readahead-fad.patch24
1 files changed, 11 insertions, 13 deletions
diff --git a/queue/ceph-try-getting-buffer-capability-for-readahead-fad.patch b/queue/ceph-try-getting-buffer-capability-for-readahead-fad.patch
index 1198ee4..a2ee50a 100644
--- a/queue/ceph-try-getting-buffer-capability-for-readahead-fad.patch
+++ b/queue/ceph-try-getting-buffer-capability-for-readahead-fad.patch
@@ -1,4 +1,4 @@
-From 2b1ac852eb67a6e95595e576371d23519105559f Mon Sep 17 00:00:00 2001
+From 292225a7786c0b29c0423a1d8fb147bf8f14c93a Mon Sep 17 00:00:00 2001
From: "Yan, Zheng" <zyan@redhat.com>
Date: Tue, 25 Oct 2016 10:51:55 +0800
Subject: [PATCH] ceph: try getting buffer capability for readahead/fadvise
@@ -13,10 +13,10 @@ issue.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
-index ef3ebd780aff..dbb5f7d69216 100644
+index d5b6f959a3c3..b0299780bdb6 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
-@@ -315,7 +315,32 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
+@@ -324,7 +324,32 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
struct page **pages;
pgoff_t next_index;
int nr_pages = 0;
@@ -50,7 +50,7 @@ index ef3ebd780aff..dbb5f7d69216 100644
off = (u64) page_offset(page);
-@@ -338,15 +363,18 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
+@@ -347,15 +372,18 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
CEPH_OSD_FLAG_READ, NULL,
ci->i_truncate_seq, ci->i_truncate_size,
false);
@@ -74,7 +74,7 @@ index ef3ebd780aff..dbb5f7d69216 100644
for (i = 0; i < nr_pages; ++i) {
page = list_entry(page_list->prev, struct page, lru);
BUG_ON(PageLocked(page));
-@@ -378,6 +406,12 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
+@@ -383,13 +411,22 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
if (ret < 0)
goto out_pages;
ceph_osdc_put_request(req);
@@ -87,10 +87,8 @@ index ef3ebd780aff..dbb5f7d69216 100644
return nr_pages;
out_pages:
-@@ -386,8 +420,11 @@ out_pages:
- unlock_page(pages[i]);
- }
- ceph_put_page_vector(pages, nr_pages, false);
+ ceph_unlock_page_vector(pages, nr_pages);
+ ceph_release_page_vector(pages, nr_pages);
-out:
+out_put:
ceph_osdc_put_request(req);
@@ -100,7 +98,7 @@ index ef3ebd780aff..dbb5f7d69216 100644
return ret;
}
-@@ -424,7 +461,6 @@ static int ceph_readpages(struct file *file, struct address_space *mapping,
+@@ -426,7 +463,6 @@ static int ceph_readpages(struct file *file, struct address_space *mapping,
rc = start_read(inode, page_list, max);
if (rc < 0)
goto out;
@@ -108,7 +106,7 @@ index ef3ebd780aff..dbb5f7d69216 100644
}
out:
ceph_fscache_readpages_cancel(inode, page_list);
-@@ -1371,9 +1407,11 @@ static int ceph_filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+@@ -1373,9 +1409,11 @@ static int ceph_filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
inode, off, (size_t)PAGE_SIZE, ceph_cap_string(got));
if ((got & (CEPH_CAP_FILE_CACHE | CEPH_CAP_FILE_LAZYIO)) ||
@@ -123,7 +121,7 @@ index ef3ebd780aff..dbb5f7d69216 100644
dout("filemap_fault %p %llu~%zd dropping cap refs on %s ret %d\n",
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
-index 4037b389a7e9..edb407f38b40 100644
+index f3f21105b860..03951f90ecf7 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -2479,6 +2479,27 @@ static void check_max_size(struct inode *inode, loff_t endoff)
@@ -155,7 +153,7 @@ index 4037b389a7e9..edb407f38b40 100644
* Wait for caps, and take cap references. If we can't get a WR cap
* due to a small max_size, make sure we check_max_size (and possibly
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
-index 10cd6acad44c..ae3cec5724d6 100644
+index eede975e85c0..174d10396ed9 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -1249,8 +1249,9 @@ again: