Preserve errno across _PC_CHOWN_RESTRICTED call on XFS
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Wed, 3 Apr 2013 05:26:45 +0000 (10:56 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Wed, 3 Apr 2013 05:26:45 +0000 (10:56 +0530)
commitd755bba40f880c01ced8740a26fecc85534454b9
treeb295c8cadaf81d7fedd5394f5aa358c25cf51dcb
parent52ce486045074d0af0298082f94e385e6b2fe443
Preserve errno across _PC_CHOWN_RESTRICTED call on XFS

Fix BZ #15305.

On kernel versions earlier than 2.6.29, the Linux kernel exported a
sysctl called restrict_chown for xfs, which could be used to allow
chown to users other than the owner.  2.6.29 removed this support,
causing the open_not_cancel_2 to fail and thus modify errno.  The fix
is to save and restore errno so that the caller sees it as unmodified.

Additionally, since the code to check the sysctl is not useful on
newer kernels, we add an ifdef so that in future the code block gets
rmeoved completely.
ChangeLog
NEWS
sysdeps/unix/sysv/linux/kernel-features.h
sysdeps/unix/sysv/linux/pathconf.c