io.c (d4bbf7e7759afc172e2bfbc5c416324590049cdd) io.c (7c46d0ae29ba880963db283706950de7aa86c0a0)
1/*
2 * This file is part of UBIFS.
3 *
4 * Copyright (C) 2006-2008 Nokia Corporation.
5 * Copyright (C) 2006, 2007 University of Szeged, Hungary
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by

--- 95 unchanged lines hidden (view full) ---

104 err = ubi_read(c->ubi, lnum, buf, offs, len);
105 /*
106 * In case of %-EBADMSG print the error message only if the
107 * @even_ebadmsg is true.
108 */
109 if (err && (err != -EBADMSG || even_ebadmsg)) {
110 ubifs_err("reading %d bytes from LEB %d:%d failed, error %d",
111 len, lnum, offs, err);
1/*
2 * This file is part of UBIFS.
3 *
4 * Copyright (C) 2006-2008 Nokia Corporation.
5 * Copyright (C) 2006, 2007 University of Szeged, Hungary
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by

--- 95 unchanged lines hidden (view full) ---

104 err = ubi_read(c->ubi, lnum, buf, offs, len);
105 /*
106 * In case of %-EBADMSG print the error message only if the
107 * @even_ebadmsg is true.
108 */
109 if (err && (err != -EBADMSG || even_ebadmsg)) {
110 ubifs_err("reading %d bytes from LEB %d:%d failed, error %d",
111 len, lnum, offs, err);
112 dbg_dump_stack();
112 dump_stack();
113 }
114 return err;
115}
116
117int ubifs_leb_write(struct ubifs_info *c, int lnum, const void *buf, int offs,
118 int len, int dtype)
119{
120 int err;

--- 4 unchanged lines hidden (view full) ---

125 if (!dbg_is_tst_rcvry(c))
126 err = ubi_leb_write(c->ubi, lnum, buf, offs, len, dtype);
127 else
128 err = dbg_leb_write(c, lnum, buf, offs, len, dtype);
129 if (err) {
130 ubifs_err("writing %d bytes to LEB %d:%d failed, error %d",
131 len, lnum, offs, err);
132 ubifs_ro_mode(c, err);
113 }
114 return err;
115}
116
117int ubifs_leb_write(struct ubifs_info *c, int lnum, const void *buf, int offs,
118 int len, int dtype)
119{
120 int err;

--- 4 unchanged lines hidden (view full) ---

125 if (!dbg_is_tst_rcvry(c))
126 err = ubi_leb_write(c->ubi, lnum, buf, offs, len, dtype);
127 else
128 err = dbg_leb_write(c, lnum, buf, offs, len, dtype);
129 if (err) {
130 ubifs_err("writing %d bytes to LEB %d:%d failed, error %d",
131 len, lnum, offs, err);
132 ubifs_ro_mode(c, err);
133 dbg_dump_stack();
133 dump_stack();
134 }
135 return err;
136}
137
138int ubifs_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len,
139 int dtype)
140{
141 int err;

--- 4 unchanged lines hidden (view full) ---

146 if (!dbg_is_tst_rcvry(c))
147 err = ubi_leb_change(c->ubi, lnum, buf, len, dtype);
148 else
149 err = dbg_leb_change(c, lnum, buf, len, dtype);
150 if (err) {
151 ubifs_err("changing %d bytes in LEB %d failed, error %d",
152 len, lnum, err);
153 ubifs_ro_mode(c, err);
134 }
135 return err;
136}
137
138int ubifs_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len,
139 int dtype)
140{
141 int err;

--- 4 unchanged lines hidden (view full) ---

146 if (!dbg_is_tst_rcvry(c))
147 err = ubi_leb_change(c->ubi, lnum, buf, len, dtype);
148 else
149 err = dbg_leb_change(c, lnum, buf, len, dtype);
150 if (err) {
151 ubifs_err("changing %d bytes in LEB %d failed, error %d",
152 len, lnum, err);
153 ubifs_ro_mode(c, err);
154 dbg_dump_stack();
154 dump_stack();
155 }
156 return err;
157}
158
159int ubifs_leb_unmap(struct ubifs_info *c, int lnum)
160{
161 int err;
162
163 ubifs_assert(!c->ro_media && !c->ro_mount);
164 if (c->ro_error)
165 return -EROFS;
166 if (!dbg_is_tst_rcvry(c))
167 err = ubi_leb_unmap(c->ubi, lnum);
168 else
169 err = dbg_leb_unmap(c, lnum);
170 if (err) {
171 ubifs_err("unmap LEB %d failed, error %d", lnum, err);
172 ubifs_ro_mode(c, err);
155 }
156 return err;
157}
158
159int ubifs_leb_unmap(struct ubifs_info *c, int lnum)
160{
161 int err;
162
163 ubifs_assert(!c->ro_media && !c->ro_mount);
164 if (c->ro_error)
165 return -EROFS;
166 if (!dbg_is_tst_rcvry(c))
167 err = ubi_leb_unmap(c->ubi, lnum);
168 else
169 err = dbg_leb_unmap(c, lnum);
170 if (err) {
171 ubifs_err("unmap LEB %d failed, error %d", lnum, err);
172 ubifs_ro_mode(c, err);
173 dbg_dump_stack();
173 dump_stack();
174 }
175 return err;
176}
177
178int ubifs_leb_map(struct ubifs_info *c, int lnum, int dtype)
179{
180 int err;
181
182 ubifs_assert(!c->ro_media && !c->ro_mount);
183 if (c->ro_error)
184 return -EROFS;
185 if (!dbg_is_tst_rcvry(c))
186 err = ubi_leb_map(c->ubi, lnum, dtype);
187 else
188 err = dbg_leb_map(c, lnum, dtype);
189 if (err) {
190 ubifs_err("mapping LEB %d failed, error %d", lnum, err);
191 ubifs_ro_mode(c, err);
174 }
175 return err;
176}
177
178int ubifs_leb_map(struct ubifs_info *c, int lnum, int dtype)
179{
180 int err;
181
182 ubifs_assert(!c->ro_media && !c->ro_mount);
183 if (c->ro_error)
184 return -EROFS;
185 if (!dbg_is_tst_rcvry(c))
186 err = ubi_leb_map(c->ubi, lnum, dtype);
187 else
188 err = dbg_leb_map(c, lnum, dtype);
189 if (err) {
190 ubifs_err("mapping LEB %d failed, error %d", lnum, err);
191 ubifs_ro_mode(c, err);
192 dbg_dump_stack();
192 dump_stack();
193 }
194 return err;
195}
196
197int ubifs_is_mapped(const struct ubifs_info *c, int lnum)
198{
199 int err;
200
201 err = ubi_is_mapped(c->ubi, lnum);
202 if (err < 0) {
203 ubifs_err("ubi_is_mapped failed for LEB %d, error %d",
204 lnum, err);
193 }
194 return err;
195}
196
197int ubifs_is_mapped(const struct ubifs_info *c, int lnum)
198{
199 int err;
200
201 err = ubi_is_mapped(c->ubi, lnum);
202 if (err < 0) {
203 ubifs_err("ubi_is_mapped failed for LEB %d, error %d",
204 lnum, err);
205 dbg_dump_stack();
205 dump_stack();
206 }
207 return err;
208}
209
210/**
211 * ubifs_check_node - check node.
212 * @c: UBIFS file-system description object
213 * @buf: node to check

--- 76 unchanged lines hidden (view full) ---

290
291out_len:
292 if (!quiet)
293 ubifs_err("bad node length %d", node_len);
294out:
295 if (!quiet) {
296 ubifs_err("bad node at LEB %d:%d", lnum, offs);
297 dbg_dump_node(c, buf);
206 }
207 return err;
208}
209
210/**
211 * ubifs_check_node - check node.
212 * @c: UBIFS file-system description object
213 * @buf: node to check

--- 76 unchanged lines hidden (view full) ---

290
291out_len:
292 if (!quiet)
293 ubifs_err("bad node length %d", node_len);
294out:
295 if (!quiet) {
296 ubifs_err("bad node at LEB %d:%d", lnum, offs);
297 dbg_dump_node(c, buf);
298 dbg_dump_stack();
298 dump_stack();
299 }
300 return err;
301}
302
303/**
304 * ubifs_pad - pad flash space.
305 * @c: UBIFS file-system description object
306 * @buf: buffer to put padding to

--- 530 unchanged lines hidden (view full) ---

837 new_wbuf_timer_nolock(wbuf);
838
839 return 0;
840
841out:
842 ubifs_err("cannot write %d bytes to LEB %d:%d, error %d",
843 len, wbuf->lnum, wbuf->offs, err);
844 dbg_dump_node(c, buf);
299 }
300 return err;
301}
302
303/**
304 * ubifs_pad - pad flash space.
305 * @c: UBIFS file-system description object
306 * @buf: buffer to put padding to

--- 530 unchanged lines hidden (view full) ---

837 new_wbuf_timer_nolock(wbuf);
838
839 return 0;
840
841out:
842 ubifs_err("cannot write %d bytes to LEB %d:%d, error %d",
843 len, wbuf->lnum, wbuf->offs, err);
844 dbg_dump_node(c, buf);
845 dbg_dump_stack();
845 dump_stack();
846 dbg_dump_leb(c, wbuf->lnum);
847 return err;
848}
849
850/**
851 * ubifs_write_node - write node to the media.
852 * @c: UBIFS file-system description object
853 * @buf: the node to write

--- 102 unchanged lines hidden (view full) ---

956 goto out;
957 }
958
959 return 0;
960
961out:
962 ubifs_err("bad node at LEB %d:%d", lnum, offs);
963 dbg_dump_node(c, buf);
846 dbg_dump_leb(c, wbuf->lnum);
847 return err;
848}
849
850/**
851 * ubifs_write_node - write node to the media.
852 * @c: UBIFS file-system description object
853 * @buf: the node to write

--- 102 unchanged lines hidden (view full) ---

956 goto out;
957 }
958
959 return 0;
960
961out:
962 ubifs_err("bad node at LEB %d:%d", lnum, offs);
963 dbg_dump_node(c, buf);
964 dbg_dump_stack();
964 dump_stack();
965 return -EINVAL;
966}
967
968/**
969 * ubifs_read_node - read node.
970 * @c: UBIFS file-system description object
971 * @buf: buffer to read to
972 * @type: node type

--- 40 unchanged lines hidden (view full) ---

1013 }
1014
1015 return 0;
1016
1017out:
1018 ubifs_err("bad node at LEB %d:%d, LEB mapping status %d", lnum, offs,
1019 ubi_is_mapped(c->ubi, lnum));
1020 dbg_dump_node(c, buf);
965 return -EINVAL;
966}
967
968/**
969 * ubifs_read_node - read node.
970 * @c: UBIFS file-system description object
971 * @buf: buffer to read to
972 * @type: node type

--- 40 unchanged lines hidden (view full) ---

1013 }
1014
1015 return 0;
1016
1017out:
1018 ubifs_err("bad node at LEB %d:%d, LEB mapping status %d", lnum, offs,
1019 ubi_is_mapped(c->ubi, lnum));
1020 dbg_dump_node(c, buf);
1021 dbg_dump_stack();
1021 dump_stack();
1022 return -EINVAL;
1023}
1024
1025/**
1026 * ubifs_wbuf_init - initialize write-buffer.
1027 * @c: UBIFS file-system description object
1028 * @wbuf: write-buffer to initialize
1029 *

--- 127 unchanged lines hidden ---
1022 return -EINVAL;
1023}
1024
1025/**
1026 * ubifs_wbuf_init - initialize write-buffer.
1027 * @c: UBIFS file-system description object
1028 * @wbuf: write-buffer to initialize
1029 *

--- 127 unchanged lines hidden ---