Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1697303
| From | James Simmons <jsimmons@infradead.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 20/20] staging: lustre: llite: set security xattr using __vfs_setxattr |
| Date | 2017-07-26 17:30 +0200 |
| Message-ID | <u7wq8-23J-67@gated-at.bofh.it> (permalink) |
| References | <u7wq5-23J-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Currently ll_initxattrs() initializes the security xattrs in
a very non-standard using get_xattr_types() to get the struct
handler that lustre created to then call indirectly the function
to set the xattr. The available __vfs_setxattr() function does
the same thing and also handles the case of when size is zero
the xattr should be set to empty EA.
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-9183
Reviewed-on: https://review.whamcloud.com/27240
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
.../staging/lustre/lustre/llite/xattr_security.c | 23 ++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/drivers/staging/lustre/lustre/llite/xattr_security.c b/drivers/staging/lustre/lustre/llite/xattr_security.c
index d61d801..391fb25 100644
--- a/drivers/staging/lustre/lustre/llite/xattr_security.c
+++ b/drivers/staging/lustre/lustre/llite/xattr_security.c
@@ -28,7 +28,10 @@
* lustre/llite/xattr_security.c
* Handler for storing security labels as extended attributes.
*/
+
+#include <linux/types.h>
#include <linux/security.h>
+#include <linux/selinux.h>
#include <linux/xattr.h>
#include "llite_internal.h"
@@ -48,19 +51,23 @@
ll_initxattrs(struct inode *inode, const struct xattr *xattr_array,
void *fs_info)
{
- const struct xattr_handler *handler;
struct dentry *dentry = fs_info;
const struct xattr *xattr;
int err = 0;
- handler = get_xattr_type(XATTR_SECURITY_PREFIX);
- if (!handler)
- return -ENXIO;
-
for (xattr = xattr_array; xattr->name; xattr++) {
- err = handler->set(handler, dentry, inode, xattr->name,
- xattr->value, xattr->value_len,
- XATTR_CREATE);
+ char *full_name;
+
+ full_name = kasprintf(GFP_KERNEL, "%s%s",
+ XATTR_SECURITY_PREFIX, xattr->name);
+ if (!full_name) {
+ err = -ENOMEM;
+ break;
+ }
+
+ err = __vfs_setxattr(dentry, inode, full_name, xattr->value,
+ xattr->value_len, XATTR_CREATE);
+ kfree(full_name);
if (err < 0)
break;
}
--
1.8.3.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/20] staging: lustre: batch of fixes to decrease test failures James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 17/20] staging: lustre: llite: allow cached acls James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 04/20] staging: lustre: lov: fix 'control flow' error in lov_io_init_released James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 13/20] staging: lustre: ptlrpc: restore 64-bit time for struct ptlrpc_cli_req James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 06/20] staging: lustre: lmv: assume a real connection in lmv_connect() James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 07/20] staging: lustre: lov: Ensure correct operation for large object sizes James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 11/20] staging: lustre: lustre: fix all less than 0 comparison for unsigned values James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 03/20] staging: lustre: ldlm: crash on umount in cleanup_resource James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 10/20] staging: lustre: ldlm: restore interval_iterate_reverse function James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 14/20] staging: lustre: ptlrpc: don't use CFS_DURATION_T for time64_t James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 08/20] staging: lustre: ptlrpc: correct use of list_add_tail() James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 01/20] staging: lustre: osc: soft lock - osc_makes_rpc() James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 19/20] staging: lustre: llite: add xattr.h header to xattr.c James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 16/20] staging: lustre: libcfs: fix test for libcfs_ioctl_hdr minimum size James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 05/20] staging: lustre: lov: remove unused code James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 20/20] staging: lustre: llite: set security xattr using __vfs_setxattr James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 12/20] staging: lustre: linkea: linkEA size limitation James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 02/20] staging: lustre: ldlm: restore missing newlines in ldlm sysfs files James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200 [PATCH 09/20] staging: lustre: ptlrpc: no need to reassign mbits for replay James Simmons <jsimmons@infradead.org> - 2017-07-26 17:30 +0200
csiph-web