From: bobijam Date: Fri, 11 Sep 2009 01:31:07 +0000 (+0000) Subject: Branch b_release_1_8_1 X-Git-Tag: v1_8_1_1~45 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=f2e32d0fec82dffdd5e8e7974cee3da0e8c3105a;p=fs%2Flustre-release.git Branch b_release_1_8_1 b=20560 i=johann i=alexander.zarochentsev Description: File checksum failures with OST read cache on Details : Clear page cache's uptodate bit when its contents are cleared. --- diff --git a/lustre/ChangeLog b/lustre/ChangeLog index ae66965..993caa0 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -15,6 +15,11 @@ TBD Sun Microsystems, Inc. * ext4 support for RHEL5 is experimental and thus should not be used in production. +Severity : major +Bugzilla : 20560 +Description: File checksum failures with OST read cache on +Details : Clear page cache's uptodate bit when its contents are cleared. + Severity : normal Bugzilla : 20533 Description: Changes in raid5-large-io-rhel5.patch to calculate sectors properly @@ -98,7 +103,7 @@ Details : 1.8 mds is allocate to big buffer to LOV EA data and this produce Severity : normal Bugzilla : 19917 Description: Repeated atomic allocation failures. -Details : Use GFP_HIGHUSER | __GFP_NOMEMALLOC flags for memory allocations +Details : Use GFP_HIGHUSER | __GFP_NOMEMALLOC flags for memory allocations to generate memory pressure and allow reclaiming of inactive pages. At the same time, do not allow to exhaust emergency pools. For local clients the use of GFP_NOFS will be introduced in 1.8.2 @@ -2592,7 +2597,7 @@ Bugzilla : 13129 Description: server LBUG when shutting down Details : Block umount forever until the mount refcount is zero rather than giving up after an arbitrary timeout. - + Severity : enhancement Bugzilla : 12194 Description: add optional extra BUILD_VERSION info @@ -3021,7 +3026,7 @@ Details : quota slave depends qctxt->lqc_import to send its quota request. This pointer will be invalid if mds did failover or broke its connect to osts, which leads to LBUG. -Severity : normal +Severity : normal Frequency : when qunit size is too small(less than 20M) Bugzilla : 12588 Description: write is stopped by improper -EDQUOT @@ -3115,7 +3120,7 @@ Details : If a client tried to create a new file before the MDT had connected to any OSTs, the create would return EIO. Now the client will simply block until the MDT connects to the first OST and the create can succeed. - + Severity : normal Frequency : only for SLES9 Bugzilla : 12543 @@ -3170,7 +3175,7 @@ Frequency : rare Description: Sometimes precreate code can triger create object on wrong ost Details : Wrong protected or not not restored variables aftre precreate loop can produce creation object on wrong ost. - + Severity : normal Frequency : oss recovery Bugzilla : 10800 diff --git a/lustre/ptlrpc/pers.c b/lustre/ptlrpc/pers.c index d53d42c..a297995 100644 --- a/lustre/ptlrpc/pers.c +++ b/lustre/ptlrpc/pers.c @@ -76,9 +76,10 @@ void ptlrpc_add_bulk_page(struct ptlrpc_bulk_desc *desc, cfs_page_t *page, void ptl_rpc_wipe_bulk_pages(struct ptlrpc_bulk_desc *desc) { int i; - + for (i = 0; i < desc->bd_iov_count ; i++) { lnet_kiov_t *kiov = &desc->bd_iov[i]; + ClearPageUptodate(kiov->kiov_page); memset(cfs_kmap(kiov->kiov_page)+kiov->kiov_offset, 0xab, kiov->kiov_len); cfs_kunmap(kiov->kiov_page); @@ -95,7 +96,7 @@ void ptlrpc_fill_bulk_md(lnet_md_t *md, struct ptlrpc_bulk_desc *desc) md->length = desc->bd_iov[0].iov_len; return; } - + md->options |= LNET_MD_IOVEC; md->start = &desc->bd_iov[0]; md->length = desc->bd_iov_count; @@ -103,7 +104,7 @@ void ptlrpc_fill_bulk_md(lnet_md_t *md, struct ptlrpc_bulk_desc *desc) static int can_merge_iovs(lnet_md_iovec_t *existing, lnet_md_iovec_t *candidate) { - if (existing->iov_base + existing->iov_len == candidate->iov_base) + if (existing->iov_base + existing->iov_len == candidate->iov_base) return 1; #if 0 /* Enable this section to provide earlier evidence of fragmented bulk */ @@ -114,7 +115,7 @@ static int can_merge_iovs(lnet_md_iovec_t *existing, lnet_md_iovec_t *candidate) return 0; } -void ptlrpc_add_bulk_page(struct ptlrpc_bulk_desc *desc, cfs_page_t *page, +void ptlrpc_add_bulk_page(struct ptlrpc_bulk_desc *desc, cfs_page_t *page, int pageoffset, int len) { lnet_md_iovec_t *iov = &desc->bd_iov[desc->bd_iov_count];