diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-11-02 11:34:44 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-11-02 11:34:44 -0400 |
commit | 389865899579c374e5532ca906f1c9425fe1dd5e (patch) | |
tree | 042ed567845ee832d076b863b66493c4db0e2857 | |
parent | eb60cbd0074d435bf50462b8b3d65c189248c1a0 (diff) | |
download | longterm-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.patch | 24 |
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: |