[PATCH 3/3] Various style cleanups

Previous thread: [PATCH] Shmem: compilation fix for !NUMA case by Pavel Emelyanov on Thursday, March 13, 2008 - 4:32 am. (1 message)

Next thread: accessing "nonexistent" /proc/<tid>/ by Miklos Szeredi on Thursday, March 13, 2008 - 5:25 am. (1 message)
From: Jan Kara
Date: Thursday, March 13, 2008 - 5:03 am

Hello,

  in the following emails will come three minor quota fixes and cleanups:

[PATCH 1/3] Add possibly missing iput() when quotaon and quotaoff races
[PATCH 2/3] Remove superfluous DQUOT_OFF() in fs/namespace.c
[PATCH 3/3] Various style cleanups

  Would you please put them to -mm? Thanks.

									Honza
-- 
Jan Kara &lt;jack@suse.cz&gt;
SUSE Labs, CR
--

From: Jan Kara
Date: Thursday, March 13, 2008 - 5:05 am

We should always put inode we have reference to, even if quota was reenabled
in the mean time.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;

---
 dquot.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/dquot.c b/fs/dquot.c
index f816d06..24eef58 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -1522,8 +1522,8 @@ int vfs_quota_off(struct super_block *sb, int type)
 				truncate_inode_pages(&amp;toputinode[cnt]-&gt;i_data, 0);
 				mutex_unlock(&amp;toputinode[cnt]-&gt;i_mutex);
 				mark_inode_dirty(toputinode[cnt]);
-				iput(toputinode[cnt]);
 			}
+			iput(toputinode[cnt]);
 			mutex_unlock(&amp;dqopt-&gt;dqonoff_mutex);
 		}
 	if (sb-&gt;s_bdev)
--

From: Andrew Morton
Date: Thursday, March 13, 2008 - 2:42 pm

On Thu, 13 Mar 2008 13:05:52 +0100

This one looks like 2.6.25 material?
--

From: Jan Kara
Date: Monday, March 17, 2008 - 6:13 am

Yes, this can be nasty when triggered (Busy inodes after umount) and the
patch is safe.

									Honza
-- 
Jan Kara &lt;jack@suse.cz&gt;
SUSE Labs, CR
--

From: Jan Kara
Date: Thursday, March 13, 2008 - 5:06 am

We don't need to turn quotas off before remounting root ro, because
do_remount_sb() already handles this.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;

---
 namespace.c |    2 --
 1 file changed, 2 deletions(-)

diff --git a/fs/namespace.c b/fs/namespace.c
index 7953c96..b6facef 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -14,7 +14,6 @@
 #include &lt;linux/smp_lock.h&gt;
 #include &lt;linux/init.h&gt;
 #include &lt;linux/kernel.h&gt;
-#include &lt;linux/quotaops.h&gt;
 #include &lt;linux/acct.h&gt;
 #include &lt;linux/capability.h&gt;
 #include &lt;linux/module.h&gt;
@@ -638,7 +637,6 @@ static int do_umount(struct vfsmount *mnt, int flags)
 		down_write(&amp;sb-&gt;s_umount);
 		if (!(sb-&gt;s_flags &amp; MS_RDONLY)) {
 			lock_kernel();
-			DQUOT_OFF(sb);
 			retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
 			unlock_kernel();
 		}
--

From: Jan Kara
Date: Thursday, March 13, 2008 - 5:07 am

Cleanups in quota code:
  Change __inline__ to inline.
  Change some macros to inline functions.
  Remove vfs_quota_off_mount() macro.
  DQUOT_OFF() should be (0) is CONFIG_QUOTA is disabled.
  Move declaration of mark_dquot_dirty and dirty_dquot from quota.h to dquot.c

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;

---
 fs/dquot.c               |   10 +++++-
 fs/reiserfs/super.c      |    2 -
 include/linux/quota.h    |    5 ---
 include/linux/quotaops.h |   71 +++++++++++++++++++++++++++++++++--------------
 4 files changed, 60 insertions(+), 28 deletions(-)

diff --git a/fs/dquot.c b/fs/dquot.c
index 24eef58..fc26d10 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -289,7 +289,15 @@ static void wait_on_dquot(struct dquot *dquot)
 	mutex_unlock(&amp;dquot-&gt;dq_lock);
 }
 
-#define mark_dquot_dirty(dquot) ((dquot)-&gt;dq_sb-&gt;dq_op-&gt;mark_dirty(dquot))
+static inline int dquot_dirty(struct dquot *dquot)
+{
+	return test_bit(DQ_MOD_B, &amp;dquot-&gt;dq_flags);
+}
+
+static inline int mark_dquot_dirty(struct dquot *dquot)
+{
+	return dquot-&gt;dq_sb-&gt;dq_op-&gt;mark_dirty(dquot);
+}
 
 int dquot_mark_dquot_dirty(struct dquot *dquot)
 {
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index 393cc22..3e1972d 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -304,7 +304,7 @@ static int finish_unfinished(struct super_block *s)
 	/* Turn quotas off */
 	for (i = 0; i &lt; MAXQUOTAS; i++) {
 		if (sb_dqopt(s)-&gt;files[i])
-			vfs_quota_off_mount(s, i);
+			vfs_quota_off(s, i);
 	}
 	if (ms_active_set)
 		/* Restore the flag back */
diff --git a/include/linux/quota.h b/include/linux/quota.h
index c1cdbb7..70ec455 100644
--- a/include/linux/quota.h
+++ b/include/linux/quota.h
@@ -327,11 +327,6 @@ struct quota_info {
 	struct quota_format_ops *ops[MAXQUOTAS];	/* Operations for each type */
 };
 
-/* Inline would be better but we need to dereference super_block which is not defined yet */
-int mark_dquot_dirty(struct dquot *dquot);
-
-#define dquot_dirty(dquot) test_bit(DQ_MOD_B, ...
Previous thread: [PATCH] Shmem: compilation fix for !NUMA case by Pavel Emelyanov on Thursday, March 13, 2008 - 4:32 am. (1 message)

Next thread: accessing "nonexistent" /proc/<tid>/ by Miklos Szeredi on Thursday, March 13, 2008 - 5:25 am. (1 message)