From: green Date: Sat, 10 Jan 2009 06:47:14 +0000 (+0000) Subject: b=18016 X-Git-Tag: v1_8_0_110~334 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=33598430dc92a33ae367ca2bed607edc2a9c1f9d;p=fs%2Flustre-release.git b=18016 r=deen,wangdi page index type in ll_read_ahead_page should be pgoff_t, not int --- diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 7141d2c..f722a0c 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -71,6 +71,12 @@ Descriptoin: Don't sync journal after every i/o Details : Implement write RPC replay to allow server replies for write RPCs before data is on disk. +Severity : low +Bugzilla : 18016 +Description: Slow reads beyond 8Tb offsets. +Details : Page index integer overflow in ll_read_ahead_page + + ------------------------------------------------------------------------------- 2008-12-31 Sun Microsystems, Inc. * version 1.8.0 diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c index dbd1ab5..1d042e3 100644 --- a/lustre/llite/rw.c +++ b/lustre/llite/rw.c @@ -1377,7 +1377,7 @@ struct ll_ra_read *ll_ra_read_get(struct file *f) } static int ll_read_ahead_page(struct obd_export *exp, struct obd_io_group *oig, - int index, struct address_space *mapping) + pgoff_t index, struct address_space *mapping) { struct ll_async_page *llap; struct page *page; @@ -1410,7 +1410,7 @@ static int ll_read_ahead_page(struct obd_export *exp, struct obd_io_group *oig, ll_ra_stats_inc(mapping, RA_STAT_FAILED_MATCH); CDEBUG(D_READA | D_PAGE, "Adding page to cache failed index " - "%d\n", index); + "%ld\n", index); CDEBUG(D_READA, "nolock page\n"); GOTO(unlock_page, rc = -ENOLCK); }