Fixed
Created: Apr 1, 2015
Updated: Sep 8, 2018
Resolved Date: Apr 2, 2015
Previous ID: LIN6-9666
Found In Version: 7.0
Fix Version: 7.0.0.5
Severity: Standard
Applicable for: Wind River Linux 7
Component/s: Kernel
In wrlinux 5, simple file permissions are not being retained when copying the file created on a yaffs partition
touch file1
chmod 777 file1
cp -a file1 file2
ls -la file*
-rwxrwxrwx 1 root root 0 Aug 11 08:28 file1
-rwx------ 1 root root 0 Aug 11 08:28 file2
Currently the YAFFS2 fs seems support xarrt but it can't works in order with other kernel mechanism and common user space tools as other file systems. So please just remove this feature as below:
--- a/fs/yaffs2/yaffs_vfs.c
+++ b/fs/yaffs2/yaffs_vfs.c
@@ -624,10 +634,12 @@ static const struct inode_operations yaffs_dir_inode_operations = {
.mknod = yaffs_mknod,
.rename = yaffs_rename,
.setattr = yaffs_setattr,
+#if 0
.setxattr = yaffs_setxattr,
.getxattr = yaffs_getxattr,
.listxattr = yaffs_listxattr,
.removexattr = yaffs_removexattr,
+#endif
};
/*-----------------------------------------------------------------*/
/* Directory search context allows us to unlock access to yaffs during
@@ -1785,10 +1797,12 @@ static const struct address_space_operations yaffs_file_address_operations = {
static const struct inode_operations yaffs_file_inode_operations = {
.setattr = yaffs_setattr,
+#if 0
.setxattr = yaffs_setxattr,
.getxattr = yaffs_getxattr,
.listxattr = yaffs_listxattr,
.removexattr = yaffs_removexattr,
+#endif
};
static const struct inode_operations yaffs_symlink_inode_operations = {
@@ -1796,10 +1810,12 @@ static const struct inode_operations yaffs_symlink_inode_operations = {
.follow_link = yaffs_follow_link,
.put_link = yaffs_put_link,
.setattr = yaffs_setattr,
+#if 0
.setxattr = yaffs_setxattr,
.getxattr = yaffs_getxattr,
.listxattr = yaffs_listxattr,
.removexattr = yaffs_removexattr,
+#endif
};
static void yaffs_fill_inode_from_obj(struct inode *inode,
--enable-reconfig --enable-kernel=standard --enable-rootfs=glibc_std+debug --enable-board=eri-siu02 --enable-test=yes --with-template=feature/analysis
build & boot
touch file1
chmod 777 file1
cp -a file1 file2
ls -la file*