diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-06-23 15:23:06 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-06-23 15:23:06 -0400 |
| commit | 7b249bdc3dec656b87bc569d4adcccbfbd525ec1 (patch) | |
| tree | e878a3dda7cac323a991c15bfc3986cb4dc24427 /fs | |
| parent | a38371cba67539ce6a5d5324db34bc2ddaf66cc1 (diff) | |
| parent | eb5e248d502bec191bd99f04cae8b49992b3abde (diff) | |
Merge tag 'xfs-4.12-fixes-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
Pull xfs fixes from Darrick Wong:
"I have one more bugfix for you for 4.12-rc7 to fix a disk corruption
problem:
- don't allow swapon on files on the realtime device, because the
swap code will swap pages out to blocks on the data device, thereby
corrupting the filesystem"
* tag 'xfs-4.12-fixes-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
xfs: don't allow bmap on rt files
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/xfs/xfs_aops.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c index 09af0f7cd55e..3b91faacc1ba 100644 --- a/fs/xfs/xfs_aops.c +++ b/fs/xfs/xfs_aops.c | |||
| @@ -1316,9 +1316,12 @@ xfs_vm_bmap( | |||
| 1316 | * The swap code (ab-)uses ->bmap to get a block mapping and then | 1316 | * The swap code (ab-)uses ->bmap to get a block mapping and then |
| 1317 | * bypasseѕ the file system for actual I/O. We really can't allow | 1317 | * bypasseѕ the file system for actual I/O. We really can't allow |
| 1318 | * that on reflinks inodes, so we have to skip out here. And yes, | 1318 | * that on reflinks inodes, so we have to skip out here. And yes, |
| 1319 | * 0 is the magic code for a bmap error.. | 1319 | * 0 is the magic code for a bmap error. |
| 1320 | * | ||
| 1321 | * Since we don't pass back blockdev info, we can't return bmap | ||
| 1322 | * information for rt files either. | ||
| 1320 | */ | 1323 | */ |
| 1321 | if (xfs_is_reflink_inode(ip)) | 1324 | if (xfs_is_reflink_inode(ip) || XFS_IS_REALTIME_INODE(ip)) |
| 1322 | return 0; | 1325 | return 0; |
| 1323 | 1326 | ||
| 1324 | filemap_write_and_wait(mapping); | 1327 | filemap_write_and_wait(mapping); |
