diff options
author | Adrian Hunter <ext-adrian.hunter@nokia.com> | 2008-07-21 08:39:05 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-08-13 04:24:26 -0400 |
commit | ff46d7b3e0870a70331b069372c36fbc43018c2d (patch) | |
tree | 8a650ad44c110e2ea3587cf5f8e86137b3bf32dd | |
parent | 2fb42b11f61cbcef7dfc225c1d26c4511436583d (diff) |
UBIFS: make ubifs_ro_mode() not inline
We use ubifs_ro_mode() quite a lot, and not in fast-path, so
there is no reason to blow the code up by having it inlined.
Also, we usually want R/O mode change to be seen to other
CPUs as soon as possible, so when we make this a function
call, we will automatically have a memory barrier.
Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r-- | fs/ubifs/io.c | 14 | ||||
-rw-r--r-- | fs/ubifs/misc.h | 14 | ||||
-rw-r--r-- | fs/ubifs/ubifs.h | 1 |
3 files changed, 15 insertions, 14 deletions
diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c index 3374f91b6709..054363f2b207 100644 --- a/fs/ubifs/io.c +++ b/fs/ubifs/io.c | |||
@@ -54,6 +54,20 @@ | |||
54 | #include "ubifs.h" | 54 | #include "ubifs.h" |
55 | 55 | ||
56 | /** | 56 | /** |
57 | * ubifs_ro_mode - switch UBIFS to read read-only mode. | ||
58 | * @c: UBIFS file-system description object | ||
59 | * @err: error code which is the reason of switching to R/O mode | ||
60 | */ | ||
61 | void ubifs_ro_mode(struct ubifs_info *c, int err) | ||
62 | { | ||
63 | if (!c->ro_media) { | ||
64 | c->ro_media = 1; | ||
65 | ubifs_warn("switched to read-only mode, error %d", err); | ||
66 | dbg_dump_stack(); | ||
67 | } | ||
68 | } | ||
69 | |||
70 | /** | ||
57 | * ubifs_check_node - check node. | 71 | * ubifs_check_node - check node. |
58 | * @c: UBIFS file-system description object | 72 | * @c: UBIFS file-system description object |
59 | * @buf: node to check | 73 | * @buf: node to check |
diff --git a/fs/ubifs/misc.h b/fs/ubifs/misc.h index 4beccfc256d2..cd83ffc8101c 100644 --- a/fs/ubifs/misc.h +++ b/fs/ubifs/misc.h | |||
@@ -80,20 +80,6 @@ static inline struct ubifs_inode *ubifs_inode(const struct inode *inode) | |||
80 | } | 80 | } |
81 | 81 | ||
82 | /** | 82 | /** |
83 | * ubifs_ro_mode - switch UBIFS to read read-only mode. | ||
84 | * @c: UBIFS file-system description object | ||
85 | * @err: error code which is the reason of switching to R/O mode | ||
86 | */ | ||
87 | static inline void ubifs_ro_mode(struct ubifs_info *c, int err) | ||
88 | { | ||
89 | if (!c->ro_media) { | ||
90 | c->ro_media = 1; | ||
91 | ubifs_warn("switched to read-only mode, error %d", err); | ||
92 | dbg_dump_stack(); | ||
93 | } | ||
94 | } | ||
95 | |||
96 | /** | ||
97 | * ubifs_compr_present - check if compressor was compiled in. | 83 | * ubifs_compr_present - check if compressor was compiled in. |
98 | * @compr_type: compressor type to check | 84 | * @compr_type: compressor type to check |
99 | * | 85 | * |
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index e4f89f271827..c488d43b6359 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h | |||
@@ -1346,6 +1346,7 @@ extern struct backing_dev_info ubifs_backing_dev_info; | |||
1346 | extern struct ubifs_compressor *ubifs_compressors[UBIFS_COMPR_TYPES_CNT]; | 1346 | extern struct ubifs_compressor *ubifs_compressors[UBIFS_COMPR_TYPES_CNT]; |
1347 | 1347 | ||
1348 | /* io.c */ | 1348 | /* io.c */ |
1349 | void ubifs_ro_mode(struct ubifs_info *c, int err); | ||
1349 | int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len); | 1350 | int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len); |
1350 | int ubifs_wbuf_seek_nolock(struct ubifs_wbuf *wbuf, int lnum, int offs, | 1351 | int ubifs_wbuf_seek_nolock(struct ubifs_wbuf *wbuf, int lnum, int offs, |
1351 | int dtype); | 1352 | int dtype); |