summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kennedy <richard@rsk.demon.co.uk>2012-04-25 14:53:05 +0100
committerFengguang Wu <fengguang.wu@intel.com>2012-04-25 21:58:11 +0800
commit4cd9069a0a0e5fb8b007425c937642682ac96c76 (patch)
treecb7872cb3a6a22b1503349106faa1ad0068f8cbc
parent18cf8cf8bab1296f477ee4dd8f78b5b23c5a192e (diff)
downloadlinux-3.10-4cd9069a0a0e5fb8b007425c937642682ac96c76.tar.gz
linux-3.10-4cd9069a0a0e5fb8b007425c937642682ac96c76.tar.bz2
linux-3.10-4cd9069a0a0e5fb8b007425c937642682ac96c76.zip
fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds
Reorder structure writeback_control to remove 8 bytes of padding on 64 bit builds, this shrinks its size from 48 to 40 bytes. This structure is always on the stack and uses C99 named initialisation, so should be safe and have a small impact on stack usage. Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk> Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
-rw-r--r--include/linux/writeback.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index a2b84f598e2..3309736ff05 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -58,7 +58,6 @@ extern const char *wb_reason_name[];
* in a manner such that unspecified fields are set to zero.
*/
struct writeback_control {
- enum writeback_sync_modes sync_mode;
long nr_to_write; /* Write this many pages, and decrement
this for each page written */
long pages_skipped; /* Pages which were not written */
@@ -71,6 +70,8 @@ struct writeback_control {
loff_t range_start;
loff_t range_end;
+ enum writeback_sync_modes sync_mode;
+
unsigned for_kupdate:1; /* A kupdate writeback */
unsigned for_background:1; /* A background writeback */
unsigned tagged_writepages:1; /* tag-and-write to avoid livelock */