linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 04/10] btrfs: Add error check for add_to_page_cache_lru
@ 2010-05-20  7:18 Miao Xie
  2010-05-20  8:43 ` Mike Fedyk
  0 siblings, 1 reply; 3+ messages in thread
From: Miao Xie @ 2010-05-20  7:18 UTC (permalink / raw)
  To: Chris Mason; +Cc: Linux Btrfs

From: Liu Bo <liubo2009@cn.fujitsu.com>

If add_to_page_cache_lru() returns -EEXIST, it indicates the page
that belongs to this page_index has been added and this readahead
action can go on to next page.

If add_to_page_cache_lru() returns -ENOMEM, it should break for
no memory left.

Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
---
 fs/btrfs/compression.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 1d54c53..1bd4d92 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -480,10 +480,23 @@ static noinline int add_ra_bio_pages(struct inode *inode,
 		if (!page)
 			break;
 
-		if (add_to_page_cache_lru(page, mapping, page_index,
-								GFP_NOFS)) {
+		ret = add_to_page_cache_lru(page, mapping, page_index,
+								GFP_NOFS);
+		if (ret) {
 			page_cache_release(page);
-			goto next;
+
+			/*
+			 * -EEXIST indicates the page has been added, so
+			 * it can move on to next page.
+			 */
+			if (ret == -EEXIST) {
+				misses++;
+				if (misses > 4)
+					break;
+				goto next;
+			}
+
+			break;
 		}
 
 		end = last_offset + PAGE_CACHE_SIZE - 1;
-- 
1.6.5.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 04/10] btrfs: Add error check for add_to_page_cache_lru
  2010-05-20  7:18 [PATCH 04/10] btrfs: Add error check for add_to_page_cache_lru Miao Xie
@ 2010-05-20  8:43 ` Mike Fedyk
  2010-05-24  2:34   ` liubo
  0 siblings, 1 reply; 3+ messages in thread
From: Mike Fedyk @ 2010-05-20  8:43 UTC (permalink / raw)
  To: miaox; +Cc: Chris Mason, Linux Btrfs

T24gVGh1LCBNYXkgMjAsIDIwMTAgYXQgMTI6MTggQU0sIE1pYW8gWGllIDxtaWFveEBjbi5mdWpp
dHN1LmNvbT4gd3JvdGU6Cj4gRnJvbTogTGl1IEJvIDxsaXVibzIwMDlAY24uZnVqaXRzdS5jb20+
Cj4KPiBJZiBhZGRfdG9fcGFnZV9jYWNoZV9scnUoKSByZXR1cm5zIC1FRVhJU1QsIGl0IGluZGlj
YXRlcyB0aGUgcGFnZQo+IHRoYXQgYmVsb25ncyB0byB0aGlzIHBhZ2VfaW5kZXggaGFzIGJlZW4g
YWRkZWQgYW5kIHRoaXMgcmVhZGFoZWFkCj4gYWN0aW9uIGNhbiBnbyBvbiB0byBuZXh0IHBhZ2Uu
Cj4KPiBJZiBhZGRfdG9fcGFnZV9jYWNoZV9scnUoKSByZXR1cm5zIC1FTk9NRU0sIGl0IHNob3Vs
ZCBicmVhayBmb3IKPiBubyBtZW1vcnkgbGVmdC4KPgo+IFNpZ25lZC1vZmYtYnk6IExpdSBCbyA8
bGl1Ym8yMDA5QGNuLmZ1aml0c3UuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1pYW8gWGllIDxtaWFv
eEBjbi5mdWppdHN1LmNvbT4KPiAtLS0KPiDCoGZzL2J0cmZzL2NvbXByZXNzaW9uLmMgfCDCoCAx
OSArKysrKysrKysrKysrKysrLS0tCj4gwqAxIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMo
KyksIDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvY29tcHJlc3Npb24u
YyBiL2ZzL2J0cmZzL2NvbXByZXNzaW9uLmMKPiBpbmRleCAxZDU0YzUzLi4xYmQ0ZDkyIDEwMDY0
NAo+IC0tLSBhL2ZzL2J0cmZzL2NvbXByZXNzaW9uLmMKPiArKysgYi9mcy9idHJmcy9jb21wcmVz
c2lvbi5jCj4gQEAgLTQ4MCwxMCArNDgwLDIzIEBAIHN0YXRpYyBub2lubGluZSBpbnQgYWRkX3Jh
X2Jpb19wYWdlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
aWYgKCFwYWdlKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYnJlYWs7Cj4K
PiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmIChhZGRfdG9fcGFnZV9jYWNoZV9scnUocGFnZSwg
bWFwcGluZywgcGFnZV9pbmRleCwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIEdGUF9OT0ZTKSkgewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmV0ID0gYWRkX3RvX3Bh
Z2VfY2FjaGVfbHJ1KHBhZ2UsIG1hcHBpbmcsIHBhZ2VfaW5kZXgsCj4gKyDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBHRlBfTk9GUyk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDC
oCBpZiAocmV0KSB7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBwYWdlX2Nh
Y2hlX3JlbGVhc2UocGFnZSk7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBn
b3RvIG5leHQ7Cj4gKwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyoKPiAr
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKiAtRUVYSVNUIGluZGljYXRlcyB0
aGUgcGFnZSBoYXMgYmVlbiBhZGRlZCwgc28KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgKiBpdCBjYW4gbW92ZSBvbiB0byBuZXh0IHBhZ2UuCj4gKyDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCovCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCBpZiAocmV0ID09IC1FRVhJU1QpIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIG1pc3NlcysrOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKG1pc3NlcyA+IDQpCj4gKyDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBicmVhazsKClNob3VsZG4n
dCB0aGlzIHVzZSBhIHByZS1wcm9jZXNzb3IgbGFiZWwgaW5zdGVhZCBvZiBoYXJkIGNvZGluZwpj
b21wcmVzc2lvbiBzZW5zaXRpdml0eSBvciByZWFkYWhlYWQgdHVuaW5nPyAgdGhpcyB3YXkgaXQn
bGwgYmUgc2V0IGluCm9uZSBwbGFjZS4KCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCBnb3RvIG5leHQ7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCB9Cj4gKwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgYnJlYWs7
Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9Cj4KPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGVu
ZCA9IGxhc3Rfb2Zmc2V0ICsgUEFHRV9DQUNIRV9TSVpFIC0gMTsKPiAtLQo+IDEuNi41LjIKPgo+
IC0tCj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vi
c2NyaWJlIGxpbnV4LWJ0cmZzIiBpbgo+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRv
bW9Admdlci5rZXJuZWwub3JnCj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCDCoGh0dHA6Ly92Z2Vy
Lmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo+Cg==

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 04/10] btrfs: Add error check for add_to_page_cache_lru
  2010-05-20  8:43 ` Mike Fedyk
@ 2010-05-24  2:34   ` liubo
  0 siblings, 0 replies; 3+ messages in thread
From: liubo @ 2010-05-24  2:34 UTC (permalink / raw)
  To: Mike Fedyk; +Cc: miaox, Chris Mason, Linux Btrfs

On 05/20/2010 04:43 PM, Mike Fedyk wrote:
> Shouldn't this use a pre-processor label instead of hard coding
> compression sensitivity or readahead tuning?  this way it'll be set in
> one place.
>
>   

All right.

Since Adding a macro may make the whole code harder to read, I add a
"goto" to avoid this kind of hard coding style instead.

Thanks.

-- 
Liubo 



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-05-24  2:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-20  7:18 [PATCH 04/10] btrfs: Add error check for add_to_page_cache_lru Miao Xie
2010-05-20  8:43 ` Mike Fedyk
2010-05-24  2:34   ` liubo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).