Whamcloud - gitweb
LU-6215 osc: use list_for_each_entry_safe() when delete items 56/13956/3
authorAndreas Dilger <andreas.dilger@intel.com>
Tue, 3 Mar 2015 20:22:51 +0000 (13:22 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Sun, 8 Mar 2015 11:42:48 +0000 (11:42 +0000)
Since we will remove items off the list using list_del_init() we need
to use a safe version of the list_for_each_entry() macro aptly named
list_for_each_entry_safe().

Linux-commit: f13ab92effb94c8fc5eade75f6f246facd7ef5be

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I6ec6d8073da6e0aa45e9d8a6ee7cde84ed9cab07
Reviewed-on: http://review.whamcloud.com/13956
Tested-by: Jenkins
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/osc/osc_cache.c

index 99a18dc..50c9a4e 100644 (file)
@@ -2644,7 +2644,9 @@ int osc_queue_sync_pages(const struct lu_env *env, struct osc_object *obj,
 
        ext = osc_extent_alloc(obj);
        if (ext == NULL) {
 
        ext = osc_extent_alloc(obj);
        if (ext == NULL) {
-               list_for_each_entry(oap, list, oap_pending_item) {
+               struct osc_async_page *tmp;
+
+               list_for_each_entry_safe(oap, tmp, list, oap_pending_item) {
                        list_del_init(&oap->oap_pending_item);
                        osc_ap_completion(env, cli, oap, 0, -ENOMEM);
                }
                        list_del_init(&oap->oap_pending_item);
                        osc_ap_completion(env, cli, oap, 0, -ENOMEM);
                }