mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-05 19:31:57 -04:00
UPSTREAM: ANDROID: fs/fuse: Backing move returns EXDEV if TO not backed
In a move operation, if the FROM file has a backing inode associated and is handled in backing, it might happen that the TO file does not have a backing path associated (yet), maybe because the FUSE daemon didn't have the chance to traverse it. Thus this special case would mistakenly trigger EBADF, while EXDEV is more appropriate. Bug: 202785178 Test: mv /storage/emulated/0/Android/data/<pkg>/file /sdcard/DCIM Signed-off-by: Alessio Balsini <balsini@google.com> Change-Id: I513c0e17c128ed9181a6b96fbf9f0b950e78be77
This commit is contained in:
parent
0f65460b10
commit
7009f91924
1 changed files with 7 additions and 1 deletions
|
|
@ -1272,7 +1272,13 @@ static int fuse_rename_backing_common(
|
|||
return -EBADF;
|
||||
get_fuse_backing_path(newent, &new_backing_path);
|
||||
if (!new_backing_path.dentry) {
|
||||
err = -EBADF;
|
||||
/*
|
||||
* TODO A file being moved from a backing path to another
|
||||
* backing path which is not yet instrumented with FUSE-BPF.
|
||||
* This may be slow and should be substituted with something
|
||||
* more clever.
|
||||
*/
|
||||
err = -EXDEV;
|
||||
goto put_old_path;
|
||||
}
|
||||
if (new_backing_path.mnt != old_backing_path.mnt) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue