From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751723AbbIKGjp (ORCPT ); Fri, 11 Sep 2015 02:39:45 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:40716 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751465AbbIKGjo (ORCPT ); Fri, 11 Sep 2015 02:39:44 -0400 X-AuditID: cbfee61b-f79d56d0000048c5-de-55f2772e36cf From: Chao Yu To: Jaegeuk Kim Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH 3/7] f2fs: verify file type early in f2fs_fallocate Date: Fri, 11 Sep 2015 14:39:02 +0800 Message-id: <00f301d0ec5c$a3d92dd0$eb8b8970$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AdDsXHvR5UIWSbdCQ767vAD7lQSw4A== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJLMWRmVeSWpSXmKPExsVy+t9jAV298k+hBqefaVg8WT+L2eLSIneL y7vmsDkwe2xa1cnmsXvBZyaPz5vkApijuGxSUnMyy1KL9O0SuDIOLdUpmMpfMeuqWgPjVJ4u Rk4OCQETif+LXzBC2GISF+6tZ+ti5OIQEljKKHHxcT8LhPOKUWLN3Y2sIFVsAioSyzv+M4HY IkD2oUWX2UFsZgEPicaO72A1wgLOEs3n34PVsAioSnx8eIUFxOYVsJSY8vg2M4QtKPFj8j0W iF4tifU7jzNB2PISm9e8ZYa4SEFix9nXQNdxAO3Sk7h8TQGiRFxi45FbLBMYBWYhmTQLyaRZ SCbNQtKygJFlFaNEakFyQXFSeq5RXmq5XnFibnFpXrpecn7uJkZwAD+T3sF4eJf7IUYBDkYl Hl4L1U+hQqyJZcWVuYcYJTiYlUR4DeSAQrwpiZVVqUX58UWlOanFhxilOViUxHllVz4LFRJI TyxJzU5NLUgtgskycXBKNTDqdK2MMTux/3590AnfF1KH7j+q+vPxt03Qxcl77See3nNd9qnz lxs7/DNFhfeGp5m7/Lj401iPt6u94Ob54PW1TrujT8/bn9Xy7F9jopWY0sHElw94Zq2WuV/Q Ziph+7NXhsfKiWFCzD5rO/NE1m0/qmYpM740O/L6lc+jB4FBZTFTeyxaa+qVWIozEg21mIuK EwECmr/zXAIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch changes to verify file type early in f2fs_fallocate for cleanup, meanwhile this also fixes to add missing verification for expand_inode_data. Signed-off-by: Chao Yu --- fs/f2fs/file.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index ac97f78..9e03622 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -775,9 +775,6 @@ static int punch_hole(struct inode *inode, loff_t offset, loff_t len) loff_t off_start, off_end; int ret = 0; - if (!S_ISREG(inode->i_mode)) - return -EOPNOTSUPP; - if (f2fs_has_inline_data(inode)) { ret = f2fs_convert_inline_inode(inode); if (ret) @@ -918,9 +915,6 @@ static int f2fs_collapse_range(struct inode *inode, loff_t offset, loff_t len) loff_t new_size; int ret; - if (!S_ISREG(inode->i_mode)) - return -EINVAL; - if (offset + len >= i_size_read(inode)) return -EINVAL; @@ -969,9 +963,6 @@ static int f2fs_zero_range(struct inode *inode, loff_t offset, loff_t len, loff_t off_start, off_end; int ret = 0; - if (!S_ISREG(inode->i_mode)) - return -EINVAL; - ret = inode_newsize_ok(inode, (len + offset)); if (ret) return ret; @@ -1078,9 +1069,6 @@ static int f2fs_insert_range(struct inode *inode, loff_t offset, loff_t len) loff_t new_size; int ret; - if (!S_ISREG(inode->i_mode)) - return -EINVAL; - new_size = i_size_read(inode) + len; if (new_size > inode->i_sb->s_maxbytes) return -EFBIG; @@ -1238,6 +1226,10 @@ static long f2fs_fallocate(struct file *file, int mode, struct inode *inode = file_inode(file); long ret = 0; + /* f2fs only support ->fallocate for regular file */ + if (!S_ISREG(inode->i_mode)) + return -EINVAL; + if (f2fs_encrypted_inode(inode) && (mode & (FALLOC_FL_COLLAPSE_RANGE | FALLOC_FL_INSERT_RANGE))) return -EOPNOTSUPP; -- 2.4.2