diff options
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c index 5a9bf5ee2464..73dc69f9681e 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -341,8 +341,23 @@ static const struct xattr_handler sockfs_xattr_handler = { | |||
341 | .get = sockfs_xattr_get, | 341 | .get = sockfs_xattr_get, |
342 | }; | 342 | }; |
343 | 343 | ||
344 | static int sockfs_security_xattr_set(const struct xattr_handler *handler, | ||
345 | struct dentry *dentry, struct inode *inode, | ||
346 | const char *suffix, const void *value, | ||
347 | size_t size, int flags) | ||
348 | { | ||
349 | /* Handled by LSM. */ | ||
350 | return -EAGAIN; | ||
351 | } | ||
352 | |||
353 | static const struct xattr_handler sockfs_security_xattr_handler = { | ||
354 | .prefix = XATTR_SECURITY_PREFIX, | ||
355 | .set = sockfs_security_xattr_set, | ||
356 | }; | ||
357 | |||
344 | static const struct xattr_handler *sockfs_xattr_handlers[] = { | 358 | static const struct xattr_handler *sockfs_xattr_handlers[] = { |
345 | &sockfs_xattr_handler, | 359 | &sockfs_xattr_handler, |
360 | &sockfs_security_xattr_handler, | ||
346 | NULL | 361 | NULL |
347 | }; | 362 | }; |
348 | 363 | ||
@@ -2038,6 +2053,8 @@ int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, | |||
2038 | if (err) | 2053 | if (err) |
2039 | break; | 2054 | break; |
2040 | ++datagrams; | 2055 | ++datagrams; |
2056 | if (msg_data_left(&msg_sys)) | ||
2057 | break; | ||
2041 | cond_resched(); | 2058 | cond_resched(); |
2042 | } | 2059 | } |
2043 | 2060 | ||