From: Wei Yongjun <yongjun_...@trendmicro.com.cn>

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().

Signed-off-by: Wei Yongjun <yongjun_...@trendmicro.com.cn>
---
 drivers/staging/lustre/lustre/osc/osc_cache.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c 
b/drivers/staging/lustre/lustre/osc/osc_cache.c
index 206fead..116ea31 100644
--- a/drivers/staging/lustre/lustre/osc/osc_cache.c
+++ b/drivers/staging/lustre/lustre/osc/osc_cache.c
@@ -2620,7 +2620,7 @@ int osc_queue_sync_pages(const struct lu_env *env, struct 
osc_object *obj,
 {
        struct client_obd     *cli = osc_cli(obj);
        struct osc_extent     *ext;
-       struct osc_async_page *oap;
+       struct osc_async_page *oap, *tmp;
        int     page_count = 0;
        int     mppr       = cli->cl_max_pages_per_rpc;
        pgoff_t start      = CL_PAGE_EOF;
@@ -2639,7 +2639,7 @@ 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) {
+               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);
                }

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to