enforce ->sync_fs is only called for rw superblock
Make sure a superblock really is writeable by checking MS_RDONLY under s_umount. sync_filesystems needed some re-arragement for that, but all but one sync_filesystem caller had the correct locking already so that we could add that check there. cachefiles grew s_umount locking. I've also added a WARN_ON to sync_filesystem to assert this for future callers. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
committed by
Al Viro
parent
e500475338
commit
5af7926ff3
@ -354,7 +354,9 @@ static void cachefiles_sync_cache(struct fscache_cache *_cache)
|
||||
/* make sure all pages pinned by operations on behalf of the netfs are
|
||||
* written to disc */
|
||||
cachefiles_begin_secure(cache, &saved_cred);
|
||||
down_read(&cache->mnt->mnt_sb->s_umount);
|
||||
ret = sync_filesystem(cache->mnt->mnt_sb);
|
||||
up_read(&cache->mnt->mnt_sb->s_umount);
|
||||
cachefiles_end_secure(cache, saved_cred);
|
||||
|
||||
if (ret == -EIO)
|
||||
|
Reference in New Issue
Block a user