there is no need to take an write (exclusive) object's
lock for fallocate - we just need to serialize fallocate
vs destroy, all internal structures should be protected
by OSD and disk filesystem like the write path does.
Lustre-change: https://review.whamcloud.com/47268
Lustre-commit: TBD (from
64e269c800533c4ce15235b21597038c29f0040a)
Fixes:
cdaaa87f6b ("LU-14214 ofd: fix locking in ofd_object_fallocate()")
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I65986745865ee329c5257a7efca5e79403830608
Reviewed-on: https://review.whamcloud.com/47477
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
if (rc)
GOTO(stop, rc);
- ofd_write_lock(env, fo);
+ ofd_read_lock(env, fo);
if (!ofd_object_exists(fo))
GOTO(unlock, rc = -ENOENT);
filter_fid_le_to_cpu(&fo->ofo_ff, ff, sizeof(*ff));
}
unlock:
- ofd_write_unlock(env, fo);
+ ofd_read_unlock(env, fo);
stop:
ofd_trans_stop(env, ofd, th, rc);
RETURN(rc);