Whamcloud - gitweb
LU-13131 osc: Make sure we don't accidentally deprioritize hp requests 18/37918/3
authorOleg Drokin <green@whamcloud.com>
Sat, 14 Mar 2020 07:11:29 +0000 (03:11 -0400)
committerOleg Drokin <green@whamcloud.com>
Wed, 15 Apr 2020 04:03:15 +0000 (04:03 +0000)
Looks like in some cases HP requests could migrade off HP list back
onto urgent list

Lustre-change: https://review.whamcloud.com/37967
Lustre-commit: f1c55f97d2d4b21fe87031b2bddfb9813f7df488

Change-Id: I96bf0a3a005b166f34dba215463c0806dfe2526a
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/37918
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Wang Shilong <wshilong@ddn.com>
lustre/osc/osc_cache.c

index 607c2ee..0e89a26 100644 (file)
@@ -594,7 +594,10 @@ int osc_extent_release(const struct lu_env *env, struct osc_extent *ext)
                        if (grant > 0)
                                osc_unreserve_grant(cli, 0, grant);
 
-                       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) {
@@ -3048,7 +3051,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;
                                }