Bug 96121

Summary: ERROR: lsetxattr security.selinux= failed. Operation not supported.
Product: File System Reporter: Chris Murphy (bugzilla)
Component: btrfsAssignee: Josef Bacik (josef)
Status: NEW ---    
Severity: normal CC: szg00000
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.0.0-0.rc6.git0.1.fc22.i686 Subsystem:
Regression: No Bisected commit-id:
Attachments: strace.txt

Description Chris Murphy 2015-04-03 17:03:03 UTC
Created attachment 173091 [details]
strace.txt

btrfs-progs v3.19.1

These are unlabeled files so I'm not sure why lsetxattr is being used.

# btrfs send /mnt/btr0/sam840ev\:chrishome\:20150403-1/ | btrfs receive /brick1/snapshots/
At subvol /mnt/btr0/sam840ev:chrishome:20150403-1/
At subvol sam840ev:chrishome:20150403-1
ERROR: lsetxattr .android security.selinux=unconfined_u:object_r:unlabeled_t:s0 failed. Operation not supported
[root@f21s snapshots]# ausearch -m AVC
<no matches>

# sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      29
Comment 1 Chris Murphy 2015-04-03 17:35:55 UTC
Both send and receive volumes are used by samba, and are mounted with this:

-o context='system_u:object_r:samba_share_t:s0',subvol=blah

So even though I'm mounting the top level of each volume elsewhere without this mount option, it's inherited from the original mount using this selinux context. If I unmount all instances, and remount without -o context, the btrfs send receive works.