Invalidate dentry and inode

fuse_inval_entry can fail if there's no entry in the dcache,
however there could still be associated attrs, so when inval_entry
fails, attempt to inval_inode to purge attrs

This allows us improve the logic added in
I83ffd660bc3d6843901e838a53eacec6883fef52 to inval case-insensitive
dentry matches. Now that we inval entries and attrs correctly, we can
utilize the entry/attr timeout parameter to avoid unnecessary invals.

Lastly, we share the invalidation logic between the MediaProvider
invals and the case-insensitive invals

Bug: 158313907
Test: atest
android.provider.cts.media.MediaStore_Images_ThumbnailsTest#testQueryExternalMiniThumbnails
&& atest --iterations 100 ScopedStorageHostTest#testCaseInsensitivity

Change-Id: I84ec47ef6c5272f476ae4c8d63d21be0aa268db9
1 file changed