When deleting everything from a list, a while loop
is cleaner than list_for_each_safe().
Linux-commit:
dff162689a4061ff30d3a05f9d790e375c06ab8f
Change-Id: I90d98ebf14f461796d6f9d31a2c62de1520034cc
Signed-off-by: Mr. NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49735
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
static void lov_finish_set(struct lov_request_set *set)
{
static void lov_finish_set(struct lov_request_set *set)
{
- struct list_head *pos, *n;
struct lov_request *req;
ENTRY;
struct lov_request *req;
ENTRY;
- list_for_each_safe(pos, n, &set->set_list) {
- req = list_entry(pos, struct lov_request, rq_link);
+ while ((req = list_first_entry_or_null(&set->set_list,
+ struct lov_request,
+ rq_link)) != NULL) {
list_del_init(&req->rq_link);
list_del_init(&req->rq_link);
if (req->rq_oi.oi_osfs)
OBD_FREE_PTR(req->rq_oi.oi_osfs);
if (req->rq_oi.oi_osfs)
OBD_FREE_PTR(req->rq_oi.oi_osfs);