|
@@ -109,25 +109,9 @@ void __scm_destroy(struct scm_cookie *scm)
|
|
|
|
|
|
if (fpl) {
|
|
|
scm->fp = NULL;
|
|
|
- if (current->scm_work_list) {
|
|
|
- list_add_tail(&fpl->list, current->scm_work_list);
|
|
|
- } else {
|
|
|
- LIST_HEAD(work_list);
|
|
|
-
|
|
|
- current->scm_work_list = &work_list;
|
|
|
-
|
|
|
- list_add(&fpl->list, &work_list);
|
|
|
- while (!list_empty(&work_list)) {
|
|
|
- fpl = list_first_entry(&work_list, struct scm_fp_list, list);
|
|
|
-
|
|
|
- list_del(&fpl->list);
|
|
|
- for (i=fpl->count-1; i>=0; i--)
|
|
|
- fput(fpl->fp[i]);
|
|
|
- kfree(fpl);
|
|
|
- }
|
|
|
-
|
|
|
- current->scm_work_list = NULL;
|
|
|
- }
|
|
|
+ for (i=fpl->count-1; i>=0; i--)
|
|
|
+ fput(fpl->fp[i]);
|
|
|
+ kfree(fpl);
|
|
|
}
|
|
|
}
|
|
|
EXPORT_SYMBOL(__scm_destroy);
|