aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAruna Balakrishnaiah <aruna@linux.vnet.ibm.com>2013-08-16 16:52:47 -0400
committerTony Luck <tony.luck@intel.com>2013-08-19 13:18:10 -0400
commitb3b515bbd689ba3937cac2dd3fc55057f8c50329 (patch)
tree19cca07f50fb439d6e7d678516db2a9568b3e7ef /fs
parenta3a5e94131d96ecdee7b1873a9d6215dc0ea7fff (diff)
pstore: Add new argument 'compressed' in pstore write callback
Addition of new argument 'compressed' in the write call back will help the backend to know if the data passed from pstore is compressed or not (In case where compression fails.). If compressed, the backend can add a tag indicating the data is compressed while writing to persistent store. Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/pstore/platform.c7
-rw-r--r--fs/pstore/ram.c2
2 files changed, 5 insertions, 4 deletions
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index 422962ae9fc2..20fa686f80fa 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -149,6 +149,7 @@ static void pstore_dump(struct kmsg_dumper *dumper,
149 unsigned long size; 149 unsigned long size;
150 int hsize; 150 int hsize;
151 size_t len; 151 size_t len;
152 bool compressed = false;
152 153
153 dst = psinfo->buf; 154 dst = psinfo->buf;
154 hsize = sprintf(dst, "%s#%d Part%d\n", why, oopscount, part); 155 hsize = sprintf(dst, "%s#%d Part%d\n", why, oopscount, part);
@@ -159,7 +160,7 @@ static void pstore_dump(struct kmsg_dumper *dumper,
159 break; 160 break;
160 161
161 ret = psinfo->write(PSTORE_TYPE_DMESG, reason, &id, part, 162 ret = psinfo->write(PSTORE_TYPE_DMESG, reason, &id, part,
162 oopscount, hsize, hsize + len, psinfo); 163 oopscount, compressed, hsize + len, psinfo);
163 if (ret == 0 && reason == KMSG_DUMP_OOPS && pstore_is_mounted()) 164 if (ret == 0 && reason == KMSG_DUMP_OOPS && pstore_is_mounted())
164 pstore_new_entry = 1; 165 pstore_new_entry = 1;
165 166
@@ -221,10 +222,10 @@ static void pstore_register_console(void) {}
221static int pstore_write_compat(enum pstore_type_id type, 222static int pstore_write_compat(enum pstore_type_id type,
222 enum kmsg_dump_reason reason, 223 enum kmsg_dump_reason reason,
223 u64 *id, unsigned int part, int count, 224 u64 *id, unsigned int part, int count,
224 size_t hsize, size_t size, 225 bool compressed, size_t size,
225 struct pstore_info *psi) 226 struct pstore_info *psi)
226{ 227{
227 return psi->write_buf(type, reason, id, part, psinfo->buf, hsize, 228 return psi->write_buf(type, reason, id, part, psinfo->buf, compressed,
228 size, psi); 229 size, psi);
229} 230}
230 231
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index a6119f9469e2..fe7188f742b7 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -196,7 +196,7 @@ static int notrace ramoops_pstore_write_buf(enum pstore_type_id type,
196 enum kmsg_dump_reason reason, 196 enum kmsg_dump_reason reason,
197 u64 *id, unsigned int part, 197 u64 *id, unsigned int part,
198 const char *buf, 198 const char *buf,
199 size_t hsize, size_t size, 199 bool compressed, size_t size,
200 struct pstore_info *psi) 200 struct pstore_info *psi)
201{ 201{
202 struct ramoops_context *cxt = psi->data; 202 struct ramoops_context *cxt = psi->data;