struct lov_io *lio = cl2lov_io(env, ios);
struct lov_stripe_md *lsm = lio->lis_object->lo_lsm;
bool is_trunc = cl_io_is_trunc(ios->cis_io);
+ struct cl_io *parent = ios->cis_io;
+ struct lov_stripe_md_entry *lsme;
struct lov_io_sub *sub;
struct lu_extent ext;
int index;
ENTRY;
+ lsme = lsm->lsm_entries[0];
+ /* No support for compressed yet. */
+ if (cl_io_is_fallocate(parent) && lsme->lsme_compr_type) {
+ struct lov_io *lio = cl2lov_io(env, ios);
+ struct lov_object *loo = lio->lis_object;
+
+ CWARN(DFID " compressed(%i), fallocate is not supported\n",
+ PFID(lu_object_fid(lov2lu(loo))), lsme->lsme_compr_type);
+ RETURN(-EOPNOTSUPP);
+ }
+
ext.e_start = lio->lis_pos;
ext.e_end = lio->lis_endpos;
local stored=$stored_dir/$orig_short.$t1$l1$c1
local stored2=$TMP/$tdir/$tfile.dec_$orig_short.$t1$l1$c1cpy
local decomp1=$TMP/$tdir/$tfile.dec_$orig_short.$t1$l1$c1
+ local decomp2=$TMP/$tdir/$tfile.dec_$orig_short.$t1$l1$c1.cp
local decomp3=$TMP/$tdir/$tfile.dec_$orig_short.$t1$l1$c1.32.1.5
local decomp4=$TMP/$tdir/$tfile.dec_$orig_short.$t1$l1$c1.32.1.5.orig
dd if=$stored of=$decomp1 bs=65536 &>/dev/null ||
error "dd to $decomp1 failed"
+ # fiomap case
+ cp $stored $decomp2 ||
+ error "dd to $decomp2 failed"
+
size1=$(stat -c %s $orig)
size2=$(stat -c %s $decomp1)
echo size1: $size1
echo size2: $size2
[ $size1 -eq $size2 ] || error "sizes differ"
+ size2=$(stat -c %s $decomp2)
+ echo size2: $size2
+ [ $size1 -eq $size2 ] || error "sizes differ"
+
+
blocks1=$(stat -c %b $orig)
blocks2=$(stat -c %b $stored)
echo blocks1: $blocks1
cmp --verbose $orig $decomp1 ||
error "decompression failed"
+ diff $orig $decomp2 ||
+ error "decompression failed"
+
# Reading starting the 480K offset
# on compressed/plain data board
dd if=$stored of=$decomp3 \