From: Lukas Czerner <lczerner@redhat.com>
To: linux-fsdevel@vger.kernel.org
Cc: linux-ext4@vger.kernel.org, xfs@oss.sgi.com,
ceph-devel@vger.kernel.org, Lukas Czerner <lczerner@redhat.com>
Subject: [PATCH 4/4] fs: Disallow all fallocate operation on active swapfile
Date: Fri, 11 Apr 2014 20:57:45 +0200 [thread overview]
Message-ID: <1397242665-2183-4-git-send-email-lczerner@redhat.com> (raw)
In-Reply-To: <1397242665-2183-1-git-send-email-lczerner@redhat.com>
Currently some file system have IS_SWAPFILE check in their fallocate
implementations and some does not. However we should really prevent any
fallocate operation on swapfile so move the check to vfs and remove the
redundant checks from the file systems fallocate implementations.
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
---
fs/ceph/file.c | 3 ---
fs/ext4/extents.c | 5 -----
fs/ext4/inode.c | 5 -----
fs/open.c | 7 +++++++
4 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 66075a4..3a69d80 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -1219,9 +1219,6 @@ static long ceph_fallocate(struct file *file, int mode,
if (!S_ISREG(inode->i_mode))
return -EOPNOTSUPP;
- if (IS_SWAPFILE(inode))
- return -ETXTBSY;
-
mutex_lock(&inode->i_mutex);
if (ceph_snap(inode) != CEPH_NOSNAP) {
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index ff823b7..517b376 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -5394,11 +5394,6 @@ int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len)
goto out_mutex;
}
- if (IS_SWAPFILE(inode)) {
- ret = -ETXTBSY;
- goto out_mutex;
- }
-
/* Currently just for extent based files */
if (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) {
ret = -EOPNOTSUPP;
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 56f1ff4..d8a270d 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -3529,11 +3529,6 @@ int ext4_punch_hole(struct inode *inode, loff_t offset, loff_t length)
mutex_lock(&inode->i_mutex);
- if (IS_SWAPFILE(inode)) {
- ret = -ETXTBSY;
- goto out_mutex;
- }
-
/* No need to punch hole beyond i_size */
if (offset >= inode->i_size)
goto out_mutex;
diff --git a/fs/open.c b/fs/open.c
index 14af6be..48e3fd0 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -266,6 +266,13 @@ int do_fallocate(struct file *file, int mode, loff_t offset, loff_t len)
return -EPERM;
/*
+ * We can not allow to do any fallocate operation on an active
+ * swapfile
+ */
+ if (IS_SWAPFILE(inode))
+ ret = -ETXTBSY;
+
+ /*
* Revalidate the write permissions, in case security policy has
* changed since the files were opened.
*/
--
1.8.3.1
next prev parent reply other threads:[~2014-04-11 18:57 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-11 18:57 [PATCH 1/4] ext4: Remove unnecessary check for APPEND and IMMUTABLE Lukas Czerner
2014-04-11 18:57 ` [PATCH 2/4] fs: Prevent doing FALLOC_FL_ZERO_RANGE on append only file Lukas Czerner
2014-04-12 13:49 ` Theodore Ts'o
2014-04-12 15:19 ` Christoph Hellwig
2014-04-15 13:09 ` Lukáš Czerner
2014-04-15 21:36 ` Dave Chinner
2014-04-11 18:57 ` [PATCH 3/4] fs: Remove i_size check from do_fallocate Lukas Czerner
2014-04-12 13:59 ` Theodore Ts'o
2014-04-13 23:39 ` Dave Chinner
2014-04-12 15:21 ` Christoph Hellwig
2014-04-15 13:10 ` Lukáš Czerner
2014-04-15 15:36 ` Theodore Ts'o
2014-04-15 16:09 ` Lukáš Czerner
2014-04-15 19:40 ` Theodore Ts'o
2014-04-15 19:57 ` Lukáš Czerner
2014-04-11 18:57 ` Lukas Czerner [this message]
2014-04-12 14:06 ` [PATCH 4/4] fs: Disallow all fallocate operation on active swapfile Theodore Ts'o
2014-04-12 15:22 ` Christoph Hellwig
2014-04-15 13:19 ` Lukáš Czerner
2014-04-12 13:48 ` [PATCH 1/4] ext4: Remove unnecessary check for APPEND and IMMUTABLE Theodore Ts'o
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1397242665-2183-4-git-send-email-lczerner@redhat.com \
--to=lczerner@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).