Fixup app-private dirs that are not writable.

Fixup non-writable app-private dirs that could have been left around by
an earlier race condition in the setup of the FUSE filesystem.

Bug: 181726193
Bug: 182088154
Test: erase userdata, check Youtube dirs are fixed up correctly
Change-Id: I7972f79d14893571289a2245f98e90e6c8c69f0a
This commit is contained in:
Martijn Coenen
2021-04-28 09:48:50 +02:00
parent 198741831a
commit 13f793aec9

View File

@@ -3273,6 +3273,13 @@ class ContextImpl extends Context {
dir = null;
}
}
if (!dir.canWrite()) {
// Older versions of the MediaProvider mainline module had a rare early boot race
// condition where app-private dirs could be created with the wrong permissions;
// fix this up here. This check should be very fast, because dir.exists() above
// will already have loaded the dentry in the cache.
sm.fixupAppDir(dir);
}
result[i] = dir;
}
return result;