diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-24 07:56:45 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-22 21:57:58 +0200 |
commit | 4a9d4b024a3102fc083c925c242d98ac27b1c5f6 (patch) | |
tree | 1a4e9d1e86a2c1b70f8352c13da8a7eee97bc5f1 /net | |
parent | deal with task_work callbacks adding more work (diff) | |
download | linux-4a9d4b024a3102fc083c925c242d98ac27b1c5f6.tar.xz linux-4a9d4b024a3102fc083c925c242d98ac27b1c5f6.zip |
switch fput to task_work_add
... and schedule_work() for interrupt/kernel_thread callers
(and yes, now it *is* OK to call from interrupt).
We are guaranteed that __fput() will be done before we return
to userland (or exit). Note that for fput() from a kernel
thread we get an async behaviour; it's almost always OK, but
sometimes you might need to have __fput() completed before
you do anything else. There are two mechanisms for that -
a general barrier (flush_delayed_fput()) and explicit
__fput_sync(). Both should be used with care (as was the
case for fput() from kernel threads all along). See comments
in fs/file_table.c for details.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions