diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2011-05-16 08:26:47 -0400 |
---|---|---|
committer | Boaz Harrosh <bharrosh@panasas.com> | 2011-08-06 22:35:31 -0400 |
commit | 85e44df4748670a1a7d8441b2d75843cdebc478a (patch) | |
tree | c5bc0cdf7dad56cc6f3a38f99c88f62325a1e029 /fs/exofs/ios.c | |
parent | e1042ba0991aab80ced34f7dade6ec25f22b4304 (diff) |
exofs: Move exofs specific osd operations out of ios.c
ios.c will be moving to an external library, for use by the
objects-layout-driver. Remove from it some exofs specific functions.
Also g_attr_logical_length is used both by inode.c and ios.c
move definition to the later, to keep it independent
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Diffstat (limited to 'fs/exofs/ios.c')
-rw-r--r-- | fs/exofs/ios.c | 64 |
1 files changed, 3 insertions, 61 deletions
diff --git a/fs/exofs/ios.c b/fs/exofs/ios.c index 096405e51b94..21d6130b462e 100644 --- a/fs/exofs/ios.c +++ b/fs/exofs/ios.c | |||
@@ -31,44 +31,6 @@ | |||
31 | #define EXOFS_DBGMSG2(M...) do {} while (0) | 31 | #define EXOFS_DBGMSG2(M...) do {} while (0) |
32 | /* #define EXOFS_DBGMSG2 EXOFS_DBGMSG */ | 32 | /* #define EXOFS_DBGMSG2 EXOFS_DBGMSG */ |
33 | 33 | ||
34 | void exofs_make_credential(u8 cred_a[OSD_CAP_LEN], const struct osd_obj_id *obj) | ||
35 | { | ||
36 | osd_sec_init_nosec_doall_caps(cred_a, obj, false, true); | ||
37 | } | ||
38 | |||
39 | int exofs_read_kern(struct osd_dev *od, u8 *cred, struct osd_obj_id *obj, | ||
40 | u64 offset, void *p, unsigned length) | ||
41 | { | ||
42 | struct osd_request *or = osd_start_request(od, GFP_KERNEL); | ||
43 | /* struct osd_sense_info osi = {.key = 0};*/ | ||
44 | int ret; | ||
45 | |||
46 | if (unlikely(!or)) { | ||
47 | EXOFS_DBGMSG("%s: osd_start_request failed.\n", __func__); | ||
48 | return -ENOMEM; | ||
49 | } | ||
50 | ret = osd_req_read_kern(or, obj, offset, p, length); | ||
51 | if (unlikely(ret)) { | ||
52 | EXOFS_DBGMSG("%s: osd_req_read_kern failed.\n", __func__); | ||
53 | goto out; | ||
54 | } | ||
55 | |||
56 | ret = osd_finalize_request(or, 0, cred, NULL); | ||
57 | if (unlikely(ret)) { | ||
58 | EXOFS_DBGMSG("Failed to osd_finalize_request() => %d\n", ret); | ||
59 | goto out; | ||
60 | } | ||
61 | |||
62 | ret = osd_execute_request(or); | ||
63 | if (unlikely(ret)) | ||
64 | EXOFS_DBGMSG("osd_execute_request() => %d\n", ret); | ||
65 | /* osd_req_decode_sense(or, ret); */ | ||
66 | |||
67 | out: | ||
68 | osd_end_request(or); | ||
69 | return ret; | ||
70 | } | ||
71 | |||
72 | int exofs_get_rw_state(struct exofs_layout *layout, bool is_reading, | 34 | int exofs_get_rw_state(struct exofs_layout *layout, bool is_reading, |
73 | u64 offset, u64 length, struct exofs_io_state **pios) | 35 | u64 offset, u64 length, struct exofs_io_state **pios) |
74 | { | 36 | { |
@@ -119,29 +81,6 @@ void exofs_put_io_state(struct exofs_io_state *ios) | |||
119 | } | 81 | } |
120 | } | 82 | } |
121 | 83 | ||
122 | unsigned exofs_layout_od_id(struct exofs_layout *layout, | ||
123 | osd_id obj_no, unsigned layout_index) | ||
124 | { | ||
125 | /* switch (layout->lay_func) { | ||
126 | case LAYOUT_MOVING_WINDOW: | ||
127 | {*/ | ||
128 | unsigned dev_mod = obj_no; | ||
129 | |||
130 | return (layout_index + dev_mod * layout->mirrors_p1) % | ||
131 | layout->s_numdevs; | ||
132 | /* } | ||
133 | case LAYOUT_FUNC_IMPLICT: | ||
134 | return layout->devs[layout_index]; | ||
135 | }*/ | ||
136 | } | ||
137 | |||
138 | static inline struct osd_dev *exofs_ios_od(struct exofs_io_state *ios, | ||
139 | unsigned layout_index) | ||
140 | { | ||
141 | return ios->layout->s_ods[ | ||
142 | exofs_layout_od_id(ios->layout, ios->obj.id, layout_index)]; | ||
143 | } | ||
144 | |||
145 | static void _sync_done(struct exofs_io_state *ios, void *p) | 84 | static void _sync_done(struct exofs_io_state *ios, void *p) |
146 | { | 85 | { |
147 | struct completion *waiting = p; | 86 | struct completion *waiting = p; |
@@ -844,3 +783,6 @@ out: | |||
844 | exofs_put_io_state(ios); | 783 | exofs_put_io_state(ios); |
845 | return ret; | 784 | return ret; |
846 | } | 785 | } |
786 | |||
787 | const struct osd_attr g_attr_logical_length = ATTR_DEF( | ||
788 | OSD_APAGE_OBJECT_INFORMATION, OSD_ATTR_OI_LOGICAL_LENGTH, 8); | ||