diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-15 05:01:41 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-15 05:01:41 +0200 |
commit | 9e0ce554b039e3df288d83189ecf226c16da04af (patch) | |
tree | 4be797c49516bb99e1a7a994302643c6c02603c2 /fs | |
parent | Merge branch 'work.read_write' of git://git.kernel.org/pub/scm/linux/kernel/g... (diff) | |
parent | fix the __user misannotations in asm-generic get_user/put_user (diff) | |
download | linux-9e0ce554b039e3df288d83189ecf226c16da04af.tar.xz linux-9e0ce554b039e3df288d83189ecf226c16da04af.zip |
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull misc leftovers from Al Viro.
* 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
fix the __user misannotations in asm-generic get_user/put_user
fput: Don't reinvent the wheel but use existing llist API
namespace.c: Don't reinvent the wheel but use existing llist API
Diffstat (limited to 'fs')
-rw-r--r-- | fs/file_table.c | 12 | ||||
-rw-r--r-- | fs/namespace.c | 8 |
2 files changed, 8 insertions, 12 deletions
diff --git a/fs/file_table.c b/fs/file_table.c index 72e861a35a7f..61517f57f8ef 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -233,12 +233,10 @@ static LLIST_HEAD(delayed_fput_list); static void delayed_fput(struct work_struct *unused) { struct llist_node *node = llist_del_all(&delayed_fput_list); - struct llist_node *next; + struct file *f, *t; - for (; node; node = next) { - next = llist_next(node); - __fput(llist_entry(node, struct file, f_u.fu_llist)); - } + llist_for_each_entry_safe(f, t, node, f_u.fu_llist) + __fput(f); } static void ____fput(struct callback_head *work) @@ -312,7 +310,7 @@ void put_filp(struct file *file) } void __init files_init(void) -{ +{ filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0, SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL); percpu_counter_init(&nr_files, 0, GFP_KERNEL); @@ -331,4 +329,4 @@ void __init files_maxfiles_init(void) n = ((totalram_pages - memreserve) * (PAGE_SIZE / 1024)) / 10; files_stat.max_files = max_t(unsigned long, n, NR_FILE); -} +} diff --git a/fs/namespace.c b/fs/namespace.c index e48ad0192d81..54059b142d6b 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -1182,12 +1182,10 @@ static LLIST_HEAD(delayed_mntput_list); static void delayed_mntput(struct work_struct *unused) { struct llist_node *node = llist_del_all(&delayed_mntput_list); - struct llist_node *next; + struct mount *m, *t; - for (; node; node = next) { - next = llist_next(node); - cleanup_mnt(llist_entry(node, struct mount, mnt_llist)); - } + llist_for_each_entry_safe(m, t, node, mnt_llist) + cleanup_mnt(m); } static DECLARE_DELAYED_WORK(delayed_mntput_work, delayed_mntput); |