aboutsummaryrefslogtreecommitdiff
path: root/fs/f2fs/data.c
Commit message (Collapse)AuthorAgeFilesLines
...
* f2fs: fix bugs and simplify codes of f2fs_fiemapFan Li2017-04-131-53/+27
| | | | | | | | | | | | | fix bugs: 1. len could be updated incorrectly when start+len is beyond isize. 2. If there is a hole consisting of more than two blocks, it could fail to add FIEMAP_EXTENT_LAST flag for the last extent. 3. If there is an extent beyond isize, when we search extents in a range that ends at isize, it will also return the extent beyond isize, which is outside the range. Signed-off-by: Fan li <fanofcode.li@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: let user being aware of IO errorChao Yu2017-04-131-10/+13
| | | | | | | | | | | | | | Sometimes we keep dumb when IO error occur in lower layer device, so user will not receive any error return value for some operation, but actually, the operation did not succeed. This sould be avoided, so this patch reports such kind of error to user. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Conflicts: fs/f2fs/data.c
* f2fs: avoid f2fs_lock_op in f2fs_write_beginJaegeuk Kim2017-04-131-8/+34
| | | | | | | If f2fs_write_begin is to update data, we can bypass calling f2fs_lock_op() in order to avoid the checkpoint latency in the write syscall. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: introduce prepare_write_begin to clean upJaegeuk Kim2017-04-131-38/+54
| | | | | | | | This patch adds prepare_write_begin to clean f2fs_write_begin. The major role of this function is to convert any inline_data and allocate or find block address. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: call f2fs_balance_fs only when node was changedJaegeuk Kim2017-04-131-4/+22
| | | | | | | | If user tries to update or read data, we don't need to call f2fs_balance_fs which triggers f2fs_gc, which increases unnecessary long latency. Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: reduce covered region of sbi->cp_rwsem in f2fs_map_blocksChao Yu2017-04-131-2/+7
| | | | | | | | | | Only cover sbi->cp_rwsem on one dnode page's allocation and modification instead of multiple's in f2fs_map_blocks, it can reduce the covered region of cp_rwsem, then we can avoid potential long time delay for concurrent checkpointer. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: record node block allocation in dnode_of_dataJaegeuk Kim2017-04-131-0/+1
| | | | | | | | | This patch introduces recording node block allocation in dnode_of_data. This information helps to figure out whether any node block is allocated during specific file operations. Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: check inline_data flag at converting timeJaegeuk Kim2017-04-131-5/+3
| | | | | | | We can check inode's inline_data flag when calling to convert it. Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: optimize the flow of f2fs_map_blocksFan Li2017-04-131-33/+36
| | | | | | | | | check map->m_len right after it changes to avoid excess call to update dnode_of_data. Signed-off-by: Fan li <fanofcode.li@samsung.com> Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: record dirty status of regular/symlink inodeChao Yu2017-04-131-2/+2
| | | | | | | | | Maintain regular/symlink inode which has dirty pages in global dirty list and record their total dirty pages count like the way of handling directory inode. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: kill f2fs_drop_largest_extentChao Yu2017-04-131-4/+0
| | | | | | | | | | | | For direct IO, f2fs only allocate new address for the block which is not exist in the disk before, its mapping info should not exist in extent cache previously, so here we do not need to call f2fs_drop_largest_extent to drop related cache. Due to no more callers for f2fs_drop_largest_extent now, kill it. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: fix to remove directory inode from dirty listChao Yu2017-04-131-1/+3
| | | | | | | | | If last dirty dentry page was writebacked in reclaim path, we should remove its directory inode from global dirty list to avoid unnecessary flush for this inode when doing checkpoint. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: support file defragmentChao Yu2017-04-131-1/+5
| | | | | | | | | | | | | | | | | This patch introduces a new ioctl F2FS_IOC_DEFRAGMENT to support file defragment in a specified range of regular file. This ioctl can be used in very limited workload: if user expects high sequential read performance in randomly written file, this interface can be used for defragmentation, after that file can be written as continuous as possible in the device. Meanwhile, it has side-effect, it will make holes in segments where blocks located originally, so it's better to trigger GC to eliminate fragment in segments. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: commit atomic written page in LFS modeChao Yu2017-04-131-0/+1
| | | | | | | | | We should always commit atomic written pages in LFS mode, otherwise data will become corrupted if we encounter suddent power cut after partial pages committed in IPU mode. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs: catch up to v4.4-rc1Jaegeuk Kim2017-04-131-371/+1339
| | | | | | | | | | | | | | | | The last patch is: commit beaa57dd986d4f398728c060692fc2452895cfd8 Author: Chao Yu <chao2.yu@samsung.com> Date: Thu Oct 22 18:24:12 2015 +0800 f2fs: fix to skip shrinking extent nodes In f2fs_shrink_extent_tree we should stop shrink flow if we have already shrunk enough nodes in extent cache. Change-Id: I704e8e1a29a871604c63689d67c9005ab3ac6e5c Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* Fix: Elevation of privilege vulnerability in kernel file systemMarcos Marado2016-11-071-1/+10
| | | | | | | | | | | | | | | An elevation of privilege vulnerability in the kernel file system could enable a local malicious application to execute arbitrary code within the context of the kernel. This issue is rated as High because it first requires compromising a privileged process. CVE References Severity CVE-2016-3802 A-28271368 High Issue: CYNGNOS-3281 Change-Id: I313dd754911251e7f01a0eb3710ee2565dcc4d1f (cherry picked from commit b24194f3ccdccd7c9efeb2a2c040e5f7e6fc4ba4)
* first commitMeizu OpenSource2016-08-151-0/+749