otherwise non-aligned writes send wrong data to ZFS.
Lustre-change: https://review.whamcloud.com/33726
Lustre-commit:
6f9a0292eacb0d603b14cc03290a574cb7f0c846
Change-Id: I1ae1f361981d548307d74344a5694f3ef39c0609
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/33748
Tested-by: Jenkins
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Hongchao Zhang <hongchao@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
if (lnb[i].lnb_page->mapping == (void *)obj) {
osd_dmu_write(osd, obj->oo_dn, lnb[i].lnb_file_offset,
if (lnb[i].lnb_page->mapping == (void *)obj) {
osd_dmu_write(osd, obj->oo_dn, lnb[i].lnb_file_offset,
- lnb[i].lnb_len, kmap(lnb[i].lnb_page),
- oh->ot_tx);
+ lnb[i].lnb_len, kmap(lnb[i].lnb_page) +
+ lnb[i].lnb_page_offset, oh->ot_tx);
kunmap(lnb[i].lnb_page);
iosize += lnb[i].lnb_len;
} else if (lnb[i].lnb_data) {
kunmap(lnb[i].lnb_page);
iosize += lnb[i].lnb_len;
} else if (lnb[i].lnb_data) {
}
run_test 805 "ZFS can remove from full fs"
}
run_test 805 "ZFS can remove from full fs"
+test_810() {
+ local ORIG
+ local CSUM
+
+ lctl set_param fail_loc=0x411
+ dd if=/dev/urandom of=$DIR/$tfile bs=10240 count=2
+ ORIG=$(md5sum $DIR/$tfile)
+ lctl set_param ldlm.namespaces.*osc*.lru_size=clear
+ CSUM=$(md5sum $DIR/$tfile)
+ if [ "$ORIG" != "$CSUM" ]; then
+ error "$ORIG != $CSUM"
+ fi
+}
+run_test 810 "partial page writes on ZFS (LU-11663)"
+
#
# tests that do cleanup/setup should be run at the end
#
#
# tests that do cleanup/setup should be run at the end
#