From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: viro@zeniv.linux.org.uk, bart.vanassche@wdc.com,
ming.lei@redhat.com, tytso@mit.edu, darrick.wong@oracle.com,
jikos@kernel.org, rjw@rjwysocki.net, pavel@ucw.cz,
len.brown@intel.com, linux-fsdevel@vger.kernel.org
Cc: boris.ostrovsky@oracle.com, jgross@suse.com,
todd.e.brandt@linux.intel.com, nborisov@suse.com, jack@suse.cz,
martin.petersen@oracle.com, ONeukum@suse.com,
oleksandr@natalenko.name, oleg.b.antonyan@gmail.com,
yu.chen.surf@gmail.com, dan.j.williams@intel.com,
linux-pm@vger.kernel.org, linux-block@vger.kernel.org,
linux-xfs@vger.kernel.org, linux-kernel@vger.kernel.org,
"Luis R. Rodriguez" <mcgrof@kernel.org>
Subject: [PATCH 11/11] jfs: remove not needed freezing calls
Date: Wed, 29 Nov 2017 15:23:56 -0800 [thread overview]
Message-ID: <20171129232356.28296-12-mcgrof@kernel.org> (raw)
In-Reply-To: <20171129232356.28296-1-mcgrof@kernel.org>
This removes superflous freezer calls as they are no longer needed
as the VFS now performs filesystem freezing/thaw if the filesystem has
support for it.
The following Coccinelle rule was used as follows:
spatch --sp-file fs-freeze-cleanup.cocci --in-place fs/$FS/
@ has_freeze_fs @
identifier super_ops;
expression freeze_op;
@@
struct super_operations super_ops = {
.freeze_fs = freeze_op,
};
@ remove_set_freezable depends on has_freeze_fs @
expression time;
statement S, S2, S3;
expression task;
@@
(
- set_freezable();
|
- if (try_to_freeze())
- continue;
|
- try_to_freeze();
|
- freezable_schedule();
+ schedule();
|
- freezable_schedule_timeout(time);
+ schedule_timeout(time);
|
- if (freezing(task)) { S }
|
- if (freezing(task)) { S }
- else
{ S2 }
|
- freezing(current)
)
Generated-by: Coccinelle SmPL
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
---
fs/jfs/jfs_logmgr.c | 11 +++--------
fs/jfs/jfs_txnmgr.c | 31 +++++++++----------------------
2 files changed, 12 insertions(+), 30 deletions(-)
diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c
index 0e5d412c0b01..fa5a95d8fba8 100644
--- a/fs/jfs/jfs_logmgr.c
+++ b/fs/jfs/jfs_logmgr.c
@@ -2344,14 +2344,9 @@ int jfsIOWait(void *arg)
spin_lock_irq(&log_redrive_lock);
}
- if (freezing(current)) {
- spin_unlock_irq(&log_redrive_lock);
- try_to_freeze();
- } else {
- set_current_state(TASK_INTERRUPTIBLE);
- spin_unlock_irq(&log_redrive_lock);
- schedule();
- }
+ set_current_state(TASK_INTERRUPTIBLE);
+ spin_unlock_irq(&log_redrive_lock);
+ schedule();
} while (!kthread_should_stop());
jfs_info("jfsIOWait being killed!");
diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c
index 4d973524c887..a313300c4651 100644
--- a/fs/jfs/jfs_txnmgr.c
+++ b/fs/jfs/jfs_txnmgr.c
@@ -2747,6 +2747,7 @@ int jfs_lazycommit(void *arg)
struct tblock *tblk;
unsigned long flags;
struct jfs_sb_info *sbi;
+ DECLARE_WAITQUEUE(wq, current);
do {
LAZY_LOCK(flags);
@@ -2793,19 +2794,11 @@ int jfs_lazycommit(void *arg)
}
/* In case a wakeup came while all threads were active */
jfs_commit_thread_waking = 0;
-
- if (freezing(current)) {
- LAZY_UNLOCK(flags);
- try_to_freeze();
- } else {
- DECLARE_WAITQUEUE(wq, current);
-
- add_wait_queue(&jfs_commit_thread_wait, &wq);
- set_current_state(TASK_INTERRUPTIBLE);
- LAZY_UNLOCK(flags);
- schedule();
- remove_wait_queue(&jfs_commit_thread_wait, &wq);
- }
+ add_wait_queue(&jfs_commit_thread_wait, &wq);
+ set_current_state(TASK_INTERRUPTIBLE);
+ LAZY_UNLOCK(flags);
+ schedule();
+ remove_wait_queue(&jfs_commit_thread_wait, &wq);
} while (!kthread_should_stop());
if (!list_empty(&TxAnchor.unlock_queue))
@@ -2982,15 +2975,9 @@ int jfs_sync(void *arg)
}
/* Add anon_list2 back to anon_list */
list_splice_init(&TxAnchor.anon_list2, &TxAnchor.anon_list);
-
- if (freezing(current)) {
- TXN_UNLOCK();
- try_to_freeze();
- } else {
- set_current_state(TASK_INTERRUPTIBLE);
- TXN_UNLOCK();
- schedule();
- }
+ set_current_state(TASK_INTERRUPTIBLE);
+ TXN_UNLOCK();
+ schedule();
} while (!kthread_should_stop());
jfs_info("jfs_sync being killed");
--
2.15.0
next prev parent reply other threads:[~2017-11-29 23:23 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-29 23:23 [PATCH 00/11] fs: use freeze_fs on suspend/hibernate Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 01/11] fs: provide unlocked helper for freeze_super() Luis R. Rodriguez
2017-11-30 16:58 ` Jan Kara
2017-11-29 23:23 ` [PATCH 02/11] fs: provide unlocked helper thaw_super() Luis R. Rodriguez
2017-11-30 16:59 ` Jan Kara
2017-11-29 23:23 ` [PATCH 03/11] fs: add frozen sb state helpers Luis R. Rodriguez
2017-11-30 17:13 ` Jan Kara
2017-11-30 19:05 ` Luis R. Rodriguez
2017-12-01 11:47 ` Jan Kara
2017-12-01 21:13 ` Luis R. Rodriguez
2017-12-21 11:03 ` Jan Kara
2018-04-18 0:59 ` Luis R. Rodriguez
2018-04-18 10:12 ` Jan Kara
2018-04-20 18:49 ` Luis R. Rodriguez
2018-04-21 23:53 ` Jan Kara
2018-04-22 1:22 ` Luis R. Rodriguez
2018-04-22 2:53 ` Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 04/11] fs: distinguish between user initiated freeze and kernel initiated freeze Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 05/11] fs: add iterate_supers_excl() and iterate_supers_reverse_excl() Luis R. Rodriguez
2017-11-29 23:48 ` Rafael J. Wysocki
2017-11-30 0:22 ` Luis R. Rodriguez
2017-11-30 1:34 ` Dave Chinner
2017-11-30 1:40 ` Rafael J. Wysocki
2017-11-30 16:57 ` Jan Kara
2017-11-29 23:23 ` [PATCH 06/11] fs: freeze on suspend and thaw on resume Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 07/11] xfs: remove not needed freezing calls Luis R. Rodriguez
2017-11-30 16:21 ` Jan Kara
2017-11-30 20:32 ` Rafael J. Wysocki
2017-11-30 23:30 ` Dave Chinner
2017-11-30 23:40 ` Rafael J. Wysocki
2017-11-29 23:23 ` [PATCH 08/11] ext4: " Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 09/11] f2fs: " Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 10/11] nilfs2: " Luis R. Rodriguez
2017-11-29 23:23 ` Luis R. Rodriguez [this message]
2017-11-30 16:36 ` [PATCH 00/11] fs: use freeze_fs on suspend/hibernate Yu Chen
2017-11-30 16:41 ` Jiri Kosina
2017-11-30 16:50 ` Yu Chen
2017-12-01 19:05 ` Jeff Layton
2017-12-01 21:51 ` Dave Chinner
2017-11-30 17:01 ` Bart Van Assche
2017-11-30 19:42 ` Luis R. Rodriguez
2017-11-30 20:53 ` Bart Van Assche
2017-11-30 21:03 ` Dave Chinner
2017-11-30 21:51 ` Pavel Machek
2017-12-01 0:44 ` Luis R. Rodriguez
2017-12-13 1:09 ` Rafael J. Wysocki
2017-12-19 16:50 ` Luis R. Rodriguez
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=20171129232356.28296-12-mcgrof@kernel.org \
--to=mcgrof@kernel.org \
--cc=ONeukum@suse.com \
--cc=bart.vanassche@wdc.com \
--cc=boris.ostrovsky@oracle.com \
--cc=dan.j.williams@intel.com \
--cc=darrick.wong@oracle.com \
--cc=jack@suse.cz \
--cc=jgross@suse.com \
--cc=jikos@kernel.org \
--cc=len.brown@intel.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=ming.lei@redhat.com \
--cc=nborisov@suse.com \
--cc=oleg.b.antonyan@gmail.com \
--cc=oleksandr@natalenko.name \
--cc=pavel@ucw.cz \
--cc=rjw@rjwysocki.net \
--cc=todd.e.brandt@linux.intel.com \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
--cc=yu.chen.surf@gmail.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).