Branch data Line data Source code
1 : : /*
2 : : * JFFS2 -- Journalling Flash File System, Version 2.
3 : : *
4 : : * Copyright © 2001-2007 Red Hat, Inc.
5 : : *
6 : : * Created by David Woodhouse <dwmw2@infradead.org>
7 : : *
8 : : * For licensing information, see the file 'LICENCE' in this directory.
9 : : *
10 : : */
11 : :
12 : : #include <linux/kernel.h>
13 : : #include <linux/mtd/mtd.h>
14 : : #include "nodelist.h"
15 : :
16 : 0 : int jffs2_flash_direct_writev(struct jffs2_sb_info *c, const struct kvec *vecs,
17 : : unsigned long count, loff_t to, size_t *retlen)
18 : : {
19 [ # # ]: 0 : if (!jffs2_is_writebuffered(c)) {
20 : : if (jffs2_sum_active()) {
21 : : int res;
22 : 0 : res = jffs2_sum_add_kvec(c, vecs, count, (uint32_t) to);
23 [ # # ]: 0 : if (res) {
24 : : return res;
25 : : }
26 : : }
27 : : }
28 : :
29 : 0 : return mtd_writev(c->mtd, vecs, count, to, retlen);
30 : : }
31 : :
32 : 0 : int jffs2_flash_direct_write(struct jffs2_sb_info *c, loff_t ofs, size_t len,
33 : : size_t *retlen, const u_char *buf)
34 : : {
35 : : int ret;
36 : 0 : ret = mtd_write(c->mtd, ofs, len, retlen, buf);
37 : :
38 : : if (jffs2_sum_active()) {
39 : : struct kvec vecs[1];
40 : : int res;
41 : :
42 : 0 : vecs[0].iov_base = (unsigned char *) buf;
43 : 0 : vecs[0].iov_len = len;
44 : :
45 : 0 : res = jffs2_sum_add_kvec(c, vecs, 1, (uint32_t) ofs);
46 [ # # ]: 0 : if (res) {
47 : 0 : return res;
48 : : }
49 : : }
50 : 0 : return ret;
51 : : }
|