diff options
author | Julia Lawall <julia@diku.dk> | 2008-01-08 01:38:42 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:00:48 -0500 |
commit | 67b23219ce2f78352b0c566a472ff16c1b0fea9a (patch) | |
tree | c02e09a072d3461505033374e1026000abe2b753 | |
parent | 3becd578c5c9aafde6f562bb1dfe20d420bce6e8 (diff) |
[BLUETOOTH]: Use sockfd_put()
The function sockfd_lookup uses fget on the value that is stored in
the file field of the returned structure, so fput should ultimately be
applied to this value. This can be done directly, but it seems better
to use the specific macro sockfd_put, which does the same thing.
The problem was fixed using the following semantic patch.
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@@
expression s;
@@
s = sockfd_lookup(...)
...
+ sockfd_put(s);
?- fput(s->file);
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/bluetooth/bnep/sock.c | 4 | ||||
-rw-r--r-- | net/bluetooth/cmtp/sock.c | 4 | ||||
-rw-r--r-- | net/bluetooth/hidp/sock.c | 10 |
3 files changed, 9 insertions, 9 deletions
diff --git a/net/bluetooth/bnep/sock.c b/net/bluetooth/bnep/sock.c index 9ebd3c64474d..81065e548a1f 100644 --- a/net/bluetooth/bnep/sock.c +++ b/net/bluetooth/bnep/sock.c | |||
@@ -94,7 +94,7 @@ static int bnep_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long | |||
94 | return err; | 94 | return err; |
95 | 95 | ||
96 | if (nsock->sk->sk_state != BT_CONNECTED) { | 96 | if (nsock->sk->sk_state != BT_CONNECTED) { |
97 | fput(nsock->file); | 97 | sockfd_put(nsock); |
98 | return -EBADFD; | 98 | return -EBADFD; |
99 | } | 99 | } |
100 | 100 | ||
@@ -103,7 +103,7 @@ static int bnep_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long | |||
103 | if (copy_to_user(argp, &ca, sizeof(ca))) | 103 | if (copy_to_user(argp, &ca, sizeof(ca))) |
104 | err = -EFAULT; | 104 | err = -EFAULT; |
105 | } else | 105 | } else |
106 | fput(nsock->file); | 106 | sockfd_put(nsock); |
107 | 107 | ||
108 | return err; | 108 | return err; |
109 | 109 | ||
diff --git a/net/bluetooth/cmtp/sock.c b/net/bluetooth/cmtp/sock.c index 783edab12ce8..8c7f7bc4e0ba 100644 --- a/net/bluetooth/cmtp/sock.c +++ b/net/bluetooth/cmtp/sock.c | |||
@@ -88,7 +88,7 @@ static int cmtp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long | |||
88 | return err; | 88 | return err; |
89 | 89 | ||
90 | if (nsock->sk->sk_state != BT_CONNECTED) { | 90 | if (nsock->sk->sk_state != BT_CONNECTED) { |
91 | fput(nsock->file); | 91 | sockfd_put(nsock); |
92 | return -EBADFD; | 92 | return -EBADFD; |
93 | } | 93 | } |
94 | 94 | ||
@@ -97,7 +97,7 @@ static int cmtp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long | |||
97 | if (copy_to_user(argp, &ca, sizeof(ca))) | 97 | if (copy_to_user(argp, &ca, sizeof(ca))) |
98 | err = -EFAULT; | 98 | err = -EFAULT; |
99 | } else | 99 | } else |
100 | fput(nsock->file); | 100 | sockfd_put(nsock); |
101 | 101 | ||
102 | return err; | 102 | return err; |
103 | 103 | ||
diff --git a/net/bluetooth/hidp/sock.c b/net/bluetooth/hidp/sock.c index 3292b956a7c4..f4dd02ca9a96 100644 --- a/net/bluetooth/hidp/sock.c +++ b/net/bluetooth/hidp/sock.c | |||
@@ -86,13 +86,13 @@ static int hidp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long | |||
86 | 86 | ||
87 | isock = sockfd_lookup(ca.intr_sock, &err); | 87 | isock = sockfd_lookup(ca.intr_sock, &err); |
88 | if (!isock) { | 88 | if (!isock) { |
89 | fput(csock->file); | 89 | sockfd_put(csock); |
90 | return err; | 90 | return err; |
91 | } | 91 | } |
92 | 92 | ||
93 | if (csock->sk->sk_state != BT_CONNECTED || isock->sk->sk_state != BT_CONNECTED) { | 93 | if (csock->sk->sk_state != BT_CONNECTED || isock->sk->sk_state != BT_CONNECTED) { |
94 | fput(csock->file); | 94 | sockfd_put(csock); |
95 | fput(isock->file); | 95 | sockfd_put(isock); |
96 | return -EBADFD; | 96 | return -EBADFD; |
97 | } | 97 | } |
98 | 98 | ||
@@ -101,8 +101,8 @@ static int hidp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long | |||
101 | if (copy_to_user(argp, &ca, sizeof(ca))) | 101 | if (copy_to_user(argp, &ca, sizeof(ca))) |
102 | err = -EFAULT; | 102 | err = -EFAULT; |
103 | } else { | 103 | } else { |
104 | fput(csock->file); | 104 | sockfd_put(csock); |
105 | fput(isock->file); | 105 | sockfd_put(isock); |
106 | } | 106 | } |
107 | 107 | ||
108 | return err; | 108 | return err; |