forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/fs/udf/file.c
....@@ -50,7 +50,7 @@
5050 * So just sample it once and use the same value everywhere.
5151 */
5252 kaddr = kmap_atomic(page);
53
- memcpy(kaddr, iinfo->i_ext.i_data + iinfo->i_lenEAttr, isize);
53
+ memcpy(kaddr, iinfo->i_data + iinfo->i_lenEAttr, isize);
5454 memset(kaddr + isize, 0, PAGE_SIZE - isize);
5555 flush_dcache_page(page);
5656 SetPageUptodate(page);
....@@ -76,8 +76,7 @@
7676 BUG_ON(!PageLocked(page));
7777
7878 kaddr = kmap_atomic(page);
79
- memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr, kaddr,
80
- i_size_read(inode));
79
+ memcpy(iinfo->i_data + iinfo->i_lenEAttr, kaddr, i_size_read(inode));
8180 SetPageUptodate(page);
8281 kunmap_atomic(kaddr);
8382 mark_inode_dirty(inode);
....@@ -215,7 +214,7 @@
215214 return put_user(UDF_I(inode)->i_lenEAttr, (int __user *)arg);
216215 case UDF_GETEABLOCK:
217216 return copy_to_user((char __user *)arg,
218
- UDF_I(inode)->i_ext.i_data,
217
+ UDF_I(inode)->i_data,
219218 UDF_I(inode)->i_lenEAttr) ? -EFAULT : 0;
220219 default:
221220 return -ENOIOCTLCMD;
....@@ -280,6 +279,9 @@
280279 return error;
281280 }
282281
282
+ if (attr->ia_valid & ATTR_MODE)
283
+ udf_update_extra_perms(inode, attr->ia_mode);
284
+
283285 setattr_copy(inode, attr);
284286 mark_inode_dirty(inode);
285287 return 0;