2 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3 * Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
5 * This copyrighted material is made available to anyone wishing to use,
6 * modify, copy, or redistribute it subject to the terms and conditions
7 * of the GNU General Public License v.2.
10 #ifndef __FILE_DOT_H__
11 #define __FILE_DOT_H__
13 int gfs2_jdata_get_buffer(struct gfs2_inode
*ip
, uint64_t block
, int new,
14 struct buffer_head
**bhp
);
16 typedef int (*read_copy_fn_t
) (struct buffer_head
*bh
, char **buf
,
17 unsigned int offset
, unsigned int size
);
18 typedef int (*write_copy_fn_t
) (struct gfs2_inode
*ip
,
19 struct buffer_head
*bh
, const char **buf
,
20 unsigned int offset
, unsigned int size
);
22 int gfs2_copy2mem(struct buffer_head
*bh
, char **buf
,
23 unsigned int offset
, unsigned int size
);
24 int gfs2_copy2user(struct buffer_head
*bh
, char __user
**buf
,
25 unsigned int offset
, unsigned int size
);
26 int gfs2_jdata_read(struct gfs2_inode
*ip
, char __user
*buf
,
27 uint64_t offset
, unsigned int size
,
28 read_copy_fn_t copy_fn
);
30 int gfs2_copy_from_mem(struct gfs2_inode
*ip
,
31 struct buffer_head
*bh
, const char **buf
,
32 unsigned int offset
, unsigned int size
);
33 int gfs2_copy_from_user(struct gfs2_inode
*ip
,
34 struct buffer_head
*bh
, const char __user
**buf
,
35 unsigned int offset
, unsigned int size
);
36 int gfs2_jdata_write(struct gfs2_inode
*ip
, const char __user
*buf
,
37 uint64_t offset
, unsigned int size
,
38 write_copy_fn_t copy_fn
);
40 static inline int gfs2_jdata_read_mem(struct gfs2_inode
*ip
, char *buf
,
41 uint64_t offset
, unsigned int size
)
43 return gfs2_jdata_read(ip
, (__force
char __user
*)buf
, offset
, size
, gfs2_copy2mem
);
46 static inline int gfs2_jdata_write_mem(struct gfs2_inode
*ip
, const char *buf
,
47 uint64_t offset
, unsigned int size
)
49 return gfs2_jdata_write(ip
, (__force
const char __user
*)buf
, offset
, size
, gfs2_copy_from_mem
);
52 #endif /* __FILE_DOT_H__ */