Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
f828a6d
mipi_samsung: Enable bkl from display on cmds
galaxyfreak Jul 10, 2014
16e79b9
lowmemorykiller updates
sachinthomaspj Jul 11, 2014
c16fd56
WLAN subsystem: Sysctl support for key TCP/IP parameters
Feb 11, 2014
589df31
msm: Create shadow files under /sys/kernel/ipv4
May 5, 2014
3dbf122
WiFi toggle fix
sachinthomaspj Jul 25, 2014
b47ff93
pico: wifi: Add custom country-code table
sachinthomaspj Jul 25, 2014
763e1f3
mipi_samsung: Use mipi_dsi_cmds_tx
sachinthomaspj Jul 25, 2014
9442953
writeback: fix writeback cache thrashing
namjaejeon Jan 3, 2013
048ef17
mm: pass readahead info down to the i/o scheduler
May 5, 2013
b55fea3
msm: kgsl: Force the ME off before reading the microcode
Jan 14, 2014
0c7eb52
Staging: android: binder: More offset validation.
arve-android Feb 14, 2014
517ddac
msm: kgsl: Increase the timeout value for fault detection
Mar 26, 2014
a5aa7b7
msm: kgsl: Don't hold the refernce to the process private in kgsl cre…
Jul 8, 2014
25e32f9
msm: display: non-blocking for overlay update
naseer Dec 6, 2012
989ddc7
msm_fb: display: update var in display commit
naseer Jan 18, 2013
5ba561e
msm_fb: display: get mipi frame rate from panel file
Jan 23, 2013
e301a16
msm: mdp: Update sync pt. behaviour
naseer Jun 28, 2013
7d3c4b6
update qdsp5 from teamhacklg
galaxyfreak Jul 30, 2014
0a2ac3c
fix non-v4l2
galaxyfreak Jul 31, 2014
5180b27
devices: msm7x27a: Add platform device for ADSP
galaxyfreak Aug 1, 2014
a067233
qdsp5: Use pmem for camera and omx
sachinthomaspj Aug 7, 2014
1ec881b
qdsp5: Updates from HTC
sachinthomaspj Aug 21, 2014
2c8e008
htc_acoustic: Update from protou
sachinthomaspj Aug 24, 2014
f574a82
qdsp5: Fix warnings
sachinthomaspj Aug 24, 2014
c33055c
msm: qdsp5: Memset stack buffer allocation.
Oct 22, 2013
213244e
msm: qdsp5: memset stack buffer allocation.
Oct 22, 2013
2cba33f
msm: qdsp5: memset stack buffer allocation.
Oct 23, 2013
769b4d9
msm: adsp: Avoid preemption during driver registration
Feb 18, 2013
81e8de5
mm: upgrade KSM module to Ultra KSM v0.122
alin23 Feb 6, 2014
6017df0
Enable Ultra KSM
sachinthomaspj Sep 5, 2014
ad3f8e1
android: lowmemorykiller: add lmk parameters tunning code.
Jul 24, 2012
9debe00
net/l2tp: don't fall back on UDP [get|set]sockopt
sashalevin Jul 15, 2014
2da7f3b
Revert "msm_fb: display: update var in display commit"
sachinthomaspj Sep 18, 2014
b69c3b9
Revert "msm: display: non-blocking for overlay update"
sachinthomaspj Sep 18, 2014
0c219c9
oom: thaw threads if oom killed thread is frozen before deferring
rientjes Nov 1, 2011
5cf72f2
oom: avoid killing kthreads if they assume the oom killed thread's mm
rientjes Nov 1, 2011
13e19fa
oom: remove oom_disable_count
rientjes Nov 1, 2011
b3229be
oom: fix race while temporarily setting current's oom_score_adj
rientjes Nov 1, 2011
37361fd
oom: do not kill tasks with oom_score_adj OOM_SCORE_ADJ_MIN
Nov 15, 2011
65be685
mm: oom_kill: remove memcg argument from oom_kill_task()
Jan 13, 2012
fe9a503
mm, oom: avoid looping when chosen thread detaches its mm
rientjes Mar 21, 2012
5348037
mm, oom: force oom kill on sysrq+f
rientjes Mar 21, 2012
151564d
mm, memcg: pass charge order to oom killer
rientjes Mar 21, 2012
68efcf1
signal: oom_kill_task: use SEND_SIG_FORCED instead of force_sig()
oleg-nesterov Mar 23, 2012
9efa3ae
sch_prio: backport enable_flow for KitKat
psyke83 Nov 14, 2013
73e10dc
ARM: kconfig: select HAVE_EFFICIENT_UNALIGNED_ACCESS for CPUv6+ && MMU
wildea01 Dec 17, 2013
b146e58
msm: display: Allow MDP clocks to use Max clock.
Oct 6, 2012
9b2c394
ARM: 7493/1: use generic unaligned.h
Aug 15, 2012
8ae8d31
ARM: 7583/1: decompressor: Enable unaligned memory access for v6 and …
Nov 22, 2012
1f8ea95
board-pico.h: allow to rework memory a *little* (experimental)
Jul 26, 2014
5370089
defconfig: Enable expanded RAM
sachinthomaspj Oct 9, 2014
5a8a9ae
i2c: tps65200: Use fast charge rate when slow charge is requested
kerneltoast Jun 30, 2014
8901217
Set ION heap sizes in separate function
galaxyfreak Sep 13, 2014
36ac465
board-pico.h: Increase MSM_PMEM_ADSP_SIZE
sachinthomaspj Oct 18, 2014
826d639
xattr: define vfs_getxattr_alloc and vfs_xattr_cmp
Mar 9, 2011
cdc69d5
security: new security_inode_init_security API adds function callback
Jun 6, 2011
545cb70
yaffs: fix getxattr support
stephensmalley Dec 19, 2011
40a46da
yaffs: set security attribute at file creation
stephensmalley Dec 19, 2011
16b9d58
fs: yaffs2: Add null pointer check before dereferencing inode
Jun 29, 2012
9a2b131
defconfigs: Enable SELinux support
sachinthomaspj Nov 1, 2014
c4591d4
Add security hooks to binder and implement the hooks for SELinux.
stephensmalley Nov 5, 2012
2d533b3
SELinux: Fix kernel BUG on empty security contexts.
stephensmalley Jan 30, 2014
05989f5
selinux: Fix Kernel panic due to NULL pointer dereference
Sep 24, 2013
20d7909
SELinux: Fix memory leak upon loading policy
Jan 6, 2014
697c586
Merge branch 'ion' of https://github.com/sachinthomaspj/android_kerne…
Gamersab Dec 2, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions arch/arm/configs/pico_aw3som3_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ CONFIG_MSM_VIC=y
# CONFIG_MACH_MSM7X27A_SURF is not set
# CONFIG_MACH_MSM7X27A_FFA is not set
CONFIG_MACH_PICO=y
CONFIG_PICO_RESIZE_MEM_ALLOC=y
CONFIG_PICO_NAND_RESIZE_PART=y
# CONFIG_MACH_GOLFU is not set
# CONFIG_MACH_PRIMODD is not set
Expand Down Expand Up @@ -764,7 +765,7 @@ CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CONNTRACK_MARK=y
# CONFIG_NF_CONNTRACK_SECMARK is not set
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
CONFIG_NF_CT_PROTO_DCCP=y
Expand Down Expand Up @@ -799,6 +800,7 @@ CONFIG_NETFILTER_XT_CONNMARK=y
# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
# CONFIG_NETFILTER_XT_TARGET_CT is not set
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
CONFIG_NETFILTER_XT_TARGET_HL=y
Expand All @@ -811,7 +813,7 @@ CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
CONFIG_NETFILTER_XT_TARGET_TPROXY=y
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set

Expand Down Expand Up @@ -898,7 +900,7 @@ CONFIG_IP_NF_MANGLE=y
# CONFIG_IP_NF_TARGET_ECN is not set
# CONFIG_IP_NF_TARGET_TTL is not set
CONFIG_IP_NF_RAW=y
# CONFIG_IP_NF_SECURITY is not set
CONFIG_IP_NF_SECURITY=y
CONFIG_IP_NF_ARPTABLES=y
CONFIG_IP_NF_ARPFILTER=y
CONFIG_IP_NF_ARP_MANGLE=y
Expand Down Expand Up @@ -2729,20 +2731,20 @@ CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_PATH is not set
CONFIG_LSM_MMAP_MIN_ADDR=32768
CONFIG_LSM_MMAP_MIN_ADDR=4096
CONFIG_SECURITY_SELINUX=y
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
# CONFIG_SECURITY_SELINUX_DISABLE is not set
# CONFIG_SECURITY_SELINUX_DEVELOP is not set
# CONFIG_SECURITY_SELINUX_AVC_STATS is not set
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_IMA is not set
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_DEFAULT_SECURITY="selinux"
CONFIG_CRYPTO=y

#
Expand Down
20 changes: 11 additions & 9 deletions arch/arm/configs/pico_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,7 @@ CONFIG_MSM_VIC=y
# CONFIG_MACH_MSM7X27A_SURF is not set
# CONFIG_MACH_MSM7X27A_FFA is not set
CONFIG_MACH_PICO=y
CONFIG_PICO_RESIZE_MEM_ALLOC=y
# CONFIG_MACH_GOLFU is not set
# CONFIG_MACH_PRIMODD is not set
# CONFIG_MACH_PRIMODS is not set
Expand Down Expand Up @@ -766,7 +767,7 @@ CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CONNTRACK_MARK=y
# CONFIG_NF_CONNTRACK_SECMARK is not set
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
CONFIG_NF_CT_PROTO_DCCP=y
Expand Down Expand Up @@ -801,6 +802,7 @@ CONFIG_NETFILTER_XT_CONNMARK=y
# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
# CONFIG_NETFILTER_XT_TARGET_CT is not set
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
CONFIG_NETFILTER_XT_TARGET_HL=y
Expand All @@ -813,7 +815,7 @@ CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
CONFIG_NETFILTER_XT_TARGET_TPROXY=y
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set

Expand Down Expand Up @@ -900,7 +902,7 @@ CONFIG_IP_NF_MANGLE=y
# CONFIG_IP_NF_TARGET_ECN is not set
# CONFIG_IP_NF_TARGET_TTL is not set
CONFIG_IP_NF_RAW=y
# CONFIG_IP_NF_SECURITY is not set
CONFIG_IP_NF_SECURITY=y
CONFIG_IP_NF_ARPTABLES=y
CONFIG_IP_NF_ARPFILTER=y
CONFIG_IP_NF_ARP_MANGLE=y
Expand Down Expand Up @@ -2731,20 +2733,20 @@ CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_PATH is not set
CONFIG_LSM_MMAP_MIN_ADDR=32768
CONFIG_LSM_MMAP_MIN_ADDR=4096
CONFIG_SECURITY_SELINUX=y
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
# CONFIG_SECURITY_SELINUX_DISABLE is not set
# CONFIG_SECURITY_SELINUX_DEVELOP is not set
# CONFIG_SECURITY_SELINUX_AVC_STATS is not set
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_IMA is not set
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_DEFAULT_SECURITY="selinux"
CONFIG_CRYPTO=y

#
Expand Down
12 changes: 10 additions & 2 deletions arch/arm/mach-msm/board-pico.c
Original file line number Diff line number Diff line change
Expand Up @@ -1653,15 +1653,13 @@ static struct ion_platform_heap pico_heaps[] = {
.id = ION_AUDIO_HEAP_ID,
.type = ION_HEAP_TYPE_CARVEOUT,
.name = ION_AUDIO_HEAP_NAME,
.size = MSM_ION_AUDIO_SIZE,
.memory_type = ION_EBI_TYPE,
.extra_data = (void *) &co_ion_pdata,
},
{
.id = ION_SF_HEAP_ID,
.type = ION_HEAP_TYPE_CARVEOUT,
.name = ION_SF_HEAP_NAME,
.size = MSM_ION_SF_SIZE,
.memory_type = ION_EBI_TYPE,
.extra_data = &co_ion_pdata,
},
Expand Down Expand Up @@ -1697,17 +1695,27 @@ static void __init size_pmem_devices(void)
{
android_pmem_adsp_pdata.size = pmem_adsp_size;
}
static void __init size_ion_devices(void)
{
#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
ion_pdata.heaps[1].size = MSM_ION_AUDIO_SIZE;
ion_pdata.heaps[2].size = MSM_ION_SF_SIZE;
#endif
}
static void __init reserve_pmem_memory(void) {
msm7x27a_reserve_table[MEMTYPE_EBI1].size += pmem_adsp_size;
}
#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
static void __init reserve_ion_memory(void) {
msm7x27a_reserve_table[MEMTYPE_EBI1].size += MSM_ION_AUDIO_SIZE;
msm7x27a_reserve_table[MEMTYPE_EBI1].size += MSM_ION_SF_SIZE;
}
#endif

static void __init msm7x27a_calculate_reserve_sizes(void)
{
size_pmem_devices();
size_ion_devices();
reserve_pmem_memory();
reserve_ion_memory();
}
Expand Down
17 changes: 17 additions & 0 deletions drivers/staging/android/binder.c
Original file line number Diff line number Diff line change
Expand Up @@ -1473,6 +1473,10 @@ static void binder_transaction(struct binder_proc *proc,
return_error = BR_FAILED_REPLY;
goto err_invalid_target_handle;
}
if (security_binder_transaction(proc->tsk, target_proc->tsk) < 0) {
return_error = BR_FAILED_REPLY;
goto err_invalid_target_handle;
}
if (!(tr->flags & TF_ONE_WAY) && thread->transaction_stack) {
struct binder_transaction *tmp;
tmp = thread->transaction_stack;
Expand Down Expand Up @@ -1627,6 +1631,10 @@ static void binder_transaction(struct binder_proc *proc,
return_error = BR_FAILED_REPLY;
goto err_binder_get_ref_for_node_failed;
}
if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
return_error = BR_FAILED_REPLY;
goto err_binder_get_ref_for_node_failed;
}
ref = binder_get_ref_for_node(target_proc, node);
if (ref == NULL) {
return_error = BR_FAILED_REPLY;
Expand Down Expand Up @@ -1660,6 +1668,10 @@ static void binder_transaction(struct binder_proc *proc,
return_error = BR_FAILED_REPLY;
goto err_binder_get_ref_failed;
}
if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
return_error = BR_FAILED_REPLY;
goto err_binder_get_ref_failed;
}
if (ref->node->proc == target_proc) {
if (fp->type == BINDER_TYPE_HANDLE)
fp->type = BINDER_TYPE_BINDER;
Expand Down Expand Up @@ -1718,6 +1730,11 @@ static void binder_transaction(struct binder_proc *proc,
return_error = BR_FAILED_REPLY;
goto err_get_unused_fd_failed;
}
if (security_binder_transfer_file(proc->tsk, target_proc->tsk, file) < 0) {
fput(file);
return_error = BR_FAILED_REPLY;
goto err_get_unused_fd_failed;
}
target_fd = task_get_unused_fd_flags(target_proc, O_CLOEXEC);
if (target_fd < 0) {
fput(file);
Expand Down
50 changes: 25 additions & 25 deletions fs/btrfs/xattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -360,36 +360,36 @@ int btrfs_removexattr(struct dentry *dentry, const char *name)
XATTR_REPLACE);
}

int btrfs_xattr_security_init(struct btrfs_trans_handle *trans,
struct inode *inode, struct inode *dir,
const struct qstr *qstr)
int btrfs_initxattrs(struct inode *inode, const struct xattr *xattr_array,
void *fs_info)
{
int err;
size_t len;
void *value;
char *suffix;
const struct xattr *xattr;
struct btrfs_trans_handle *trans = fs_info;
char *name;
int err = 0;

err = security_inode_init_security(inode, dir, qstr, &suffix, &value,
&len);
if (err) {
if (err == -EOPNOTSUPP)
return 0;
return err;
}

name = kmalloc(XATTR_SECURITY_PREFIX_LEN + strlen(suffix) + 1,
GFP_NOFS);
if (!name) {
err = -ENOMEM;
} else {
for (xattr = xattr_array; xattr->name != NULL; xattr++) {
name = kmalloc(XATTR_SECURITY_PREFIX_LEN +
strlen(xattr->name) + 1, GFP_NOFS);
if (!name) {
err = -ENOMEM;
break;
}
strcpy(name, XATTR_SECURITY_PREFIX);
strcpy(name + XATTR_SECURITY_PREFIX_LEN, suffix);
err = __btrfs_setxattr(trans, inode, name, value, len, 0);
strcpy(name + XATTR_SECURITY_PREFIX_LEN, xattr->name);
err = __btrfs_setxattr(trans, inode, name,
xattr->value, xattr->value_len, 0);
kfree(name);
if (err < 0)
break;
}

kfree(suffix);
kfree(value);
return err;
}

int btrfs_xattr_security_init(struct btrfs_trans_handle *trans,
struct inode *inode, struct inode *dir,
const struct qstr *qstr)
{
return security_inode_init_security(inode, dir, qstr,
&btrfs_initxattrs, trans);
}
34 changes: 18 additions & 16 deletions fs/ext2/xattr_security.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,28 +46,30 @@ ext2_xattr_security_set(struct dentry *dentry, const char *name,
value, size, flags);
}

int
ext2_init_security(struct inode *inode, struct inode *dir,
const struct qstr *qstr)
int ext2_initxattrs(struct inode *inode, const struct xattr *xattr_array,
void *fs_info)
{
int err;
size_t len;
void *value;
char *name;
const struct xattr *xattr;
int err = 0;

err = security_inode_init_security(inode, dir, qstr, &name, &value, &len);
if (err) {
if (err == -EOPNOTSUPP)
return 0;
return err;
for (xattr = xattr_array; xattr->name != NULL; xattr++) {
err = ext2_xattr_set(inode, EXT2_XATTR_INDEX_SECURITY,
xattr->name, xattr->value,
xattr->value_len, 0);
if (err < 0)
break;
}
err = ext2_xattr_set(inode, EXT2_XATTR_INDEX_SECURITY,
name, value, len, 0);
kfree(name);
kfree(value);
return err;
}

int
ext2_init_security(struct inode *inode, struct inode *dir,
const struct qstr *qstr)
{
return security_inode_init_security(inode, dir, qstr,
&ext2_initxattrs, NULL);
}

const struct xattr_handler ext2_xattr_security_handler = {
.prefix = XATTR_SECURITY_PREFIX,
.list = ext2_xattr_security_list,
Expand Down
36 changes: 20 additions & 16 deletions fs/ext3/xattr_security.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,28 +48,32 @@ ext3_xattr_security_set(struct dentry *dentry, const char *name,
name, value, size, flags);
}

int
ext3_init_security(handle_t *handle, struct inode *inode, struct inode *dir,
const struct qstr *qstr)
int ext3_initxattrs(struct inode *inode, const struct xattr *xattr_array,
void *fs_info)
{
int err;
size_t len;
void *value;
char *name;
const struct xattr *xattr;
handle_t *handle = fs_info;
int err = 0;

err = security_inode_init_security(inode, dir, qstr, &name, &value, &len);
if (err) {
if (err == -EOPNOTSUPP)
return 0;
return err;
for (xattr = xattr_array; xattr->name != NULL; xattr++) {
err = ext3_xattr_set_handle(handle, inode,
EXT3_XATTR_INDEX_SECURITY,
xattr->name, xattr->value,
xattr->value_len, 0);
if (err < 0)
break;
}
err = ext3_xattr_set_handle(handle, inode, EXT3_XATTR_INDEX_SECURITY,
name, value, len, 0);
kfree(name);
kfree(value);
return err;
}

int
ext3_init_security(handle_t *handle, struct inode *inode, struct inode *dir,
const struct qstr *qstr)
{
return security_inode_init_security(inode, dir, qstr,
&ext3_initxattrs, handle);
}

const struct xattr_handler ext3_xattr_security_handler = {
.prefix = XATTR_SECURITY_PREFIX,
.list = ext3_xattr_security_list,
Expand Down
Loading