diff options
Diffstat (limited to 'fs/ecryptfs/netlink.c')
-rw-r--r-- | fs/ecryptfs/netlink.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/fs/ecryptfs/netlink.c b/fs/ecryptfs/netlink.c index fe9186312d7c..9aa345121e09 100644 --- a/fs/ecryptfs/netlink.c +++ b/fs/ecryptfs/netlink.c | |||
@@ -165,22 +165,10 @@ static int ecryptfs_process_nl_quit(struct sk_buff *skb) | |||
165 | * it to its desired netlink context element and wake up the process | 165 | * it to its desired netlink context element and wake up the process |
166 | * that is waiting for a response. | 166 | * that is waiting for a response. |
167 | */ | 167 | */ |
168 | static void ecryptfs_receive_nl_message(struct sock *sk, int len) | 168 | static void ecryptfs_receive_nl_message(struct sk_buff *skb) |
169 | { | 169 | { |
170 | struct sk_buff *skb; | ||
171 | struct nlmsghdr *nlh; | 170 | struct nlmsghdr *nlh; |
172 | int rc = 0; /* skb_recv_datagram requires this */ | ||
173 | 171 | ||
174 | receive: | ||
175 | skb = skb_recv_datagram(sk, 0, 0, &rc); | ||
176 | if (rc == -EINTR) | ||
177 | goto receive; | ||
178 | else if (rc < 0) { | ||
179 | ecryptfs_printk(KERN_ERR, "Error occurred while " | ||
180 | "receiving eCryptfs netlink message; " | ||
181 | "rc = [%d]\n", rc); | ||
182 | return; | ||
183 | } | ||
184 | nlh = nlmsg_hdr(skb); | 172 | nlh = nlmsg_hdr(skb); |
185 | if (!NLMSG_OK(nlh, skb->len)) { | 173 | if (!NLMSG_OK(nlh, skb->len)) { |
186 | ecryptfs_printk(KERN_ERR, "Received corrupt netlink " | 174 | ecryptfs_printk(KERN_ERR, "Received corrupt netlink " |
@@ -227,7 +215,7 @@ int ecryptfs_init_netlink(void) | |||
227 | { | 215 | { |
228 | int rc; | 216 | int rc; |
229 | 217 | ||
230 | ecryptfs_nl_sock = netlink_kernel_create(NETLINK_ECRYPTFS, 0, | 218 | ecryptfs_nl_sock = netlink_kernel_create(&init_net, NETLINK_ECRYPTFS, 0, |
231 | ecryptfs_receive_nl_message, | 219 | ecryptfs_receive_nl_message, |
232 | NULL, THIS_MODULE); | 220 | NULL, THIS_MODULE); |
233 | if (!ecryptfs_nl_sock) { | 221 | if (!ecryptfs_nl_sock) { |