diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/svc.c | 16 | ||||
-rw-r--r-- | net/unix/af_unix.c | 4 |
2 files changed, 15 insertions, 5 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index a290e1523297..090af78d68b5 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c | |||
@@ -301,7 +301,6 @@ static inline int | |||
301 | svc_pool_map_set_cpumask(unsigned int pidx, cpumask_t *oldmask) | 301 | svc_pool_map_set_cpumask(unsigned int pidx, cpumask_t *oldmask) |
302 | { | 302 | { |
303 | struct svc_pool_map *m = &svc_pool_map; | 303 | struct svc_pool_map *m = &svc_pool_map; |
304 | unsigned int node; /* or cpu */ | ||
305 | 304 | ||
306 | /* | 305 | /* |
307 | * The caller checks for sv_nrpools > 1, which | 306 | * The caller checks for sv_nrpools > 1, which |
@@ -314,16 +313,23 @@ svc_pool_map_set_cpumask(unsigned int pidx, cpumask_t *oldmask) | |||
314 | default: | 313 | default: |
315 | return 0; | 314 | return 0; |
316 | case SVC_POOL_PERCPU: | 315 | case SVC_POOL_PERCPU: |
317 | node = m->pool_to[pidx]; | 316 | { |
317 | unsigned int cpu = m->pool_to[pidx]; | ||
318 | |||
318 | *oldmask = current->cpus_allowed; | 319 | *oldmask = current->cpus_allowed; |
319 | set_cpus_allowed(current, cpumask_of_cpu(node)); | 320 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); |
320 | return 1; | 321 | return 1; |
322 | } | ||
321 | case SVC_POOL_PERNODE: | 323 | case SVC_POOL_PERNODE: |
322 | node = m->pool_to[pidx]; | 324 | { |
325 | unsigned int node = m->pool_to[pidx]; | ||
326 | node_to_cpumask_ptr(nodecpumask, node); | ||
327 | |||
323 | *oldmask = current->cpus_allowed; | 328 | *oldmask = current->cpus_allowed; |
324 | set_cpus_allowed(current, node_to_cpumask(node)); | 329 | set_cpus_allowed_ptr(current, nodecpumask); |
325 | return 1; | 330 | return 1; |
326 | } | 331 | } |
332 | } | ||
327 | } | 333 | } |
328 | 334 | ||
329 | /* | 335 | /* |
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 2851d0d15048..1454afcc06c4 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -819,7 +819,11 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) | |||
819 | */ | 819 | */ |
820 | mode = S_IFSOCK | | 820 | mode = S_IFSOCK | |
821 | (SOCK_INODE(sock)->i_mode & ~current->fs->umask); | 821 | (SOCK_INODE(sock)->i_mode & ~current->fs->umask); |
822 | err = mnt_want_write(nd.path.mnt); | ||
823 | if (err) | ||
824 | goto out_mknod_dput; | ||
822 | err = vfs_mknod(nd.path.dentry->d_inode, dentry, mode, 0); | 825 | err = vfs_mknod(nd.path.dentry->d_inode, dentry, mode, 0); |
826 | mnt_drop_write(nd.path.mnt); | ||
823 | if (err) | 827 | if (err) |
824 | goto out_mknod_dput; | 828 | goto out_mknod_dput; |
825 | mutex_unlock(&nd.path.dentry->d_inode->i_mutex); | 829 | mutex_unlock(&nd.path.dentry->d_inode->i_mutex); |