diff options
author | Wei Yongjun <yongjun_wei@trendmicro.com.cn> | 2012-08-21 04:46:05 +0200 |
---|---|---|
committer | Tyler Hicks <tyhicks@canonical.com> | 2012-12-18 17:07:29 +0100 |
commit | 8bbca57cff7f1b1fd046eebd1e9497a00161c2c1 (patch) | |
tree | 3fda3c058123baf9087b1a32922ad6498aff1e39 | |
parent | eCryptfs: Avoid unnecessary disk read and data decryption during writing (diff) | |
download | linux-8bbca57cff7f1b1fd046eebd1e9497a00161c2c1.tar.xz linux-8bbca57cff7f1b1fd046eebd1e9497a00161c2c1.zip |
eCryptfs: fix to use list_for_each_entry_safe() when delete items
Since we will be removing items off the list using list_del() we need
to use a safer version of the list_for_each_entry() macro aptly named
list_for_each_entry_safe(). We should use the safe macro if the loop
involves deletions of items.
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
[tyhicks: Fixed compiler err - missing list_for_each_entry_safe() param]
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
-rw-r--r-- | fs/ecryptfs/kthread.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/ecryptfs/kthread.c b/fs/ecryptfs/kthread.c index 809e67d05ca3..f1ea610362c6 100644 --- a/fs/ecryptfs/kthread.c +++ b/fs/ecryptfs/kthread.c @@ -102,12 +102,12 @@ int __init ecryptfs_init_kthread(void) void ecryptfs_destroy_kthread(void) { - struct ecryptfs_open_req *req; + struct ecryptfs_open_req *req, *tmp; mutex_lock(&ecryptfs_kthread_ctl.mux); ecryptfs_kthread_ctl.flags |= ECRYPTFS_KTHREAD_ZOMBIE; - list_for_each_entry(req, &ecryptfs_kthread_ctl.req_list, - kthread_ctl_list) { + list_for_each_entry_safe(req, tmp, &ecryptfs_kthread_ctl.req_list, + kthread_ctl_list) { list_del(&req->kthread_ctl_list); *req->lower_file = ERR_PTR(-EIO); complete(&req->done); |