summaryrefslogtreecommitdiffstats
path: root/net/socket.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-03-27 00:14:02 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2009-03-27 00:14:02 +0100
commit8e9d2089723d08d51e66c5eea49253d76e27941e (patch)
treecf15609d5eeb0c1f3a39231d8ce793d3c8ad0ed0 /net/socket.c
parentMerge branch 'header-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/k... (diff)
parentRationalize fasync return values (diff)
downloadlinux-8e9d2089723d08d51e66c5eea49253d76e27941e.tar.xz
linux-8e9d2089723d08d51e66c5eea49253d76e27941e.zip
Merge branch 'bkl-removal' of git://git.lwn.net/linux-2.6
* 'bkl-removal' of git://git.lwn.net/linux-2.6: Rationalize fasync return values Move FASYNC bit handling to f_op->fasync() Use f_lock to protect f_flags Rename struct file->f_ep_lock
Diffstat (limited to 'net/socket.c')
-rw-r--r--net/socket.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c
index 47a3dc074eb0..af0205ff56f2 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1074,6 +1074,13 @@ static int sock_fasync(int fd, struct file *filp, int on)
lock_sock(sk);
+ spin_lock(&filp->f_lock);
+ if (on)
+ filp->f_flags |= FASYNC;
+ else
+ filp->f_flags &= ~FASYNC;
+ spin_unlock(&filp->f_lock);
+
prev = &(sock->fasync_list);
for (fa = *prev; fa != NULL; prev = &fa->fa_next, fa = *prev)