From eaba382df06cd6f570b16c5f759f612b057e5324 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Tue, 3 Mar 2015 13:22:51 -0700 Subject: [PATCH] LU-6215 osc: use list_for_each_entry_safe() when delete items 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 Signed-off-by: Greg Kroah-Hartman Signed-off-by: Andreas Dilger Change-Id: I6ec6d8073da6e0aa45e9d8a6ee7cde84ed9cab07 Reviewed-on: http://review.whamcloud.com/13956 Tested-by: Jenkins Reviewed-by: James Simmons Reviewed-by: John L. Hammond Reviewed-by: Dmitry Eremin Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/osc/osc_cache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lustre/osc/osc_cache.c b/lustre/osc/osc_cache.c index 99a18dc..50c9a4e 100644 --- a/lustre/osc/osc_cache.c +++ b/lustre/osc/osc_cache.c @@ -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) { - 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); } -- 1.8.3.1