From: Oleg Drokin Date: Sat, 14 Mar 2020 07:11:29 +0000 (-0400) Subject: LU-13131 osc: Make sure we don't accidentally deprioritize extents X-Git-Tag: 2.13.53~27 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=f1c55f97d2d4b21fe87031b2bddfb9813f7df488 LU-13131 osc: Make sure we don't accidentally deprioritize extents Looks like in some cases high priority extents could migrate off oo_hp_exts list back onto urgent list. Change-Id: I96bf0a3a005b166f34dba215463c0806dfe2526a Signed-off-by: Oleg Drokin Reviewed-on: https://review.whamcloud.com/37967 Reviewed-by: Andreas Dilger Tested-by: jenkins Reviewed-by: Wang Shilong Tested-by: Maloo --- diff --git a/lustre/osc/osc_cache.c b/lustre/osc/osc_cache.c index 1f343e2..bf183d4 100644 --- a/lustre/osc/osc_cache.c +++ b/lustre/osc/osc_cache.c @@ -593,7 +593,10 @@ int osc_extent_release(const struct lu_env *env, struct osc_extent *ext) if (osc_extent_merge(env, ext, next_extent(ext)) == 0) grant += cli->cl_grant_extent_tax; - if (ext->oe_urgent) + if (ext->oe_hp) + list_move_tail(&ext->oe_link, + &obj->oo_hp_exts); + else if (ext->oe_urgent) list_move_tail(&ext->oe_link, &obj->oo_urgent_exts); else if (ext->oe_nr_pages == ext->oe_mppr) { @@ -2875,7 +2878,7 @@ int osc_cache_writeback_range(const struct lu_env *env, struct osc_object *obj, EASSERT(!ext->oe_hp, ext); ext->oe_hp = 1; list = &obj->oo_hp_exts; - } else if (!ext->oe_urgent) { + } else if (!ext->oe_urgent && !ext->oe_hp) { ext->oe_urgent = 1; list = &obj->oo_urgent_exts; }