Loading core/java/android/app/ActivityThread.java +9 −1 Original line number Diff line number Diff line Loading @@ -7513,7 +7513,15 @@ public final class ActivityThread extends ClientTransactionHandler { try { super.rename(oldPath, newPath); } catch (ErrnoException e) { if (e.errno == OsConstants.EXDEV && oldPath.startsWith("/storage/")) { // On emulated volumes, we have bind mounts for /Android/data and // /Android/obb, which prevents move from working across those directories // and other directories on the filesystem. To work around that, try to // recover by doing a copy instead. // Note that we only do this for "/storage/emulated", because public volumes // don't have these bind mounts, neither do private volumes that are not // the primary storage. if (e.errno == OsConstants.EXDEV && oldPath.startsWith("/storage/emulated") && newPath.startsWith("/storage/emulated")) { Log.v(TAG, "Recovering failed rename " + oldPath + " to " + newPath); try { Files.move(new File(oldPath).toPath(), new File(newPath).toPath(), Loading Loading
core/java/android/app/ActivityThread.java +9 −1 Original line number Diff line number Diff line Loading @@ -7513,7 +7513,15 @@ public final class ActivityThread extends ClientTransactionHandler { try { super.rename(oldPath, newPath); } catch (ErrnoException e) { if (e.errno == OsConstants.EXDEV && oldPath.startsWith("/storage/")) { // On emulated volumes, we have bind mounts for /Android/data and // /Android/obb, which prevents move from working across those directories // and other directories on the filesystem. To work around that, try to // recover by doing a copy instead. // Note that we only do this for "/storage/emulated", because public volumes // don't have these bind mounts, neither do private volumes that are not // the primary storage. if (e.errno == OsConstants.EXDEV && oldPath.startsWith("/storage/emulated") && newPath.startsWith("/storage/emulated")) { Log.v(TAG, "Recovering failed rename " + oldPath + " to " + newPath); try { Files.move(new File(oldPath).toPath(), new File(newPath).toPath(), Loading