diff options
Diffstat (limited to 'fs/ocfs2/ioctl.c')
-rw-r--r-- | fs/ocfs2/ioctl.c | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/fs/ocfs2/ioctl.c b/fs/ocfs2/ioctl.c index 7a4868196152..8f13c5989eae 100644 --- a/fs/ocfs2/ioctl.c +++ b/fs/ocfs2/ioctl.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #include <linux/mount.h> | 9 | #include <linux/mount.h> |
10 | #include <linux/compat.h> | 10 | #include <linux/compat.h> |
11 | 11 | ||
12 | #define MLOG_MASK_PREFIX ML_INODE | ||
13 | #include <cluster/masklog.h> | 12 | #include <cluster/masklog.h> |
14 | 13 | ||
15 | #include "ocfs2.h" | 14 | #include "ocfs2.h" |
@@ -46,6 +45,22 @@ static inline void __o2info_set_request_error(struct ocfs2_info_request *kreq, | |||
46 | #define o2info_set_request_error(a, b) \ | 45 | #define o2info_set_request_error(a, b) \ |
47 | __o2info_set_request_error((struct ocfs2_info_request *)&(a), b) | 46 | __o2info_set_request_error((struct ocfs2_info_request *)&(a), b) |
48 | 47 | ||
48 | static inline void __o2info_set_request_filled(struct ocfs2_info_request *req) | ||
49 | { | ||
50 | req->ir_flags |= OCFS2_INFO_FL_FILLED; | ||
51 | } | ||
52 | |||
53 | #define o2info_set_request_filled(a) \ | ||
54 | __o2info_set_request_filled((struct ocfs2_info_request *)&(a)) | ||
55 | |||
56 | static inline void __o2info_clear_request_filled(struct ocfs2_info_request *req) | ||
57 | { | ||
58 | req->ir_flags &= ~OCFS2_INFO_FL_FILLED; | ||
59 | } | ||
60 | |||
61 | #define o2info_clear_request_filled(a) \ | ||
62 | __o2info_clear_request_filled((struct ocfs2_info_request *)&(a)) | ||
63 | |||
49 | static int ocfs2_get_inode_attr(struct inode *inode, unsigned *flags) | 64 | static int ocfs2_get_inode_attr(struct inode *inode, unsigned *flags) |
50 | { | 65 | { |
51 | int status; | 66 | int status; |
@@ -59,7 +74,6 @@ static int ocfs2_get_inode_attr(struct inode *inode, unsigned *flags) | |||
59 | *flags = OCFS2_I(inode)->ip_attr; | 74 | *flags = OCFS2_I(inode)->ip_attr; |
60 | ocfs2_inode_unlock(inode, 0); | 75 | ocfs2_inode_unlock(inode, 0); |
61 | 76 | ||
62 | mlog_exit(status); | ||
63 | return status; | 77 | return status; |
64 | } | 78 | } |
65 | 79 | ||
@@ -82,7 +96,7 @@ static int ocfs2_set_inode_attr(struct inode *inode, unsigned flags, | |||
82 | } | 96 | } |
83 | 97 | ||
84 | status = -EACCES; | 98 | status = -EACCES; |
85 | if (!is_owner_or_cap(inode)) | 99 | if (!inode_owner_or_capable(inode)) |
86 | goto bail_unlock; | 100 | goto bail_unlock; |
87 | 101 | ||
88 | if (!S_ISDIR(inode->i_mode)) | 102 | if (!S_ISDIR(inode->i_mode)) |
@@ -125,7 +139,6 @@ bail: | |||
125 | 139 | ||
126 | brelse(bh); | 140 | brelse(bh); |
127 | 141 | ||
128 | mlog_exit(status); | ||
129 | return status; | 142 | return status; |
130 | } | 143 | } |
131 | 144 | ||
@@ -139,7 +152,8 @@ int ocfs2_info_handle_blocksize(struct inode *inode, | |||
139 | goto bail; | 152 | goto bail; |
140 | 153 | ||
141 | oib.ib_blocksize = inode->i_sb->s_blocksize; | 154 | oib.ib_blocksize = inode->i_sb->s_blocksize; |
142 | oib.ib_req.ir_flags |= OCFS2_INFO_FL_FILLED; | 155 | |
156 | o2info_set_request_filled(oib); | ||
143 | 157 | ||
144 | if (o2info_to_user(oib, req)) | 158 | if (o2info_to_user(oib, req)) |
145 | goto bail; | 159 | goto bail; |
@@ -163,7 +177,8 @@ int ocfs2_info_handle_clustersize(struct inode *inode, | |||
163 | goto bail; | 177 | goto bail; |
164 | 178 | ||
165 | oic.ic_clustersize = osb->s_clustersize; | 179 | oic.ic_clustersize = osb->s_clustersize; |
166 | oic.ic_req.ir_flags |= OCFS2_INFO_FL_FILLED; | 180 | |
181 | o2info_set_request_filled(oic); | ||
167 | 182 | ||
168 | if (o2info_to_user(oic, req)) | 183 | if (o2info_to_user(oic, req)) |
169 | goto bail; | 184 | goto bail; |
@@ -187,7 +202,8 @@ int ocfs2_info_handle_maxslots(struct inode *inode, | |||
187 | goto bail; | 202 | goto bail; |
188 | 203 | ||
189 | oim.im_max_slots = osb->max_slots; | 204 | oim.im_max_slots = osb->max_slots; |
190 | oim.im_req.ir_flags |= OCFS2_INFO_FL_FILLED; | 205 | |
206 | o2info_set_request_filled(oim); | ||
191 | 207 | ||
192 | if (o2info_to_user(oim, req)) | 208 | if (o2info_to_user(oim, req)) |
193 | goto bail; | 209 | goto bail; |
@@ -211,7 +227,8 @@ int ocfs2_info_handle_label(struct inode *inode, | |||
211 | goto bail; | 227 | goto bail; |
212 | 228 | ||
213 | memcpy(oil.il_label, osb->vol_label, OCFS2_MAX_VOL_LABEL_LEN); | 229 | memcpy(oil.il_label, osb->vol_label, OCFS2_MAX_VOL_LABEL_LEN); |
214 | oil.il_req.ir_flags |= OCFS2_INFO_FL_FILLED; | 230 | |
231 | o2info_set_request_filled(oil); | ||
215 | 232 | ||
216 | if (o2info_to_user(oil, req)) | 233 | if (o2info_to_user(oil, req)) |
217 | goto bail; | 234 | goto bail; |
@@ -235,7 +252,8 @@ int ocfs2_info_handle_uuid(struct inode *inode, | |||
235 | goto bail; | 252 | goto bail; |
236 | 253 | ||
237 | memcpy(oiu.iu_uuid_str, osb->uuid_str, OCFS2_TEXT_UUID_LEN + 1); | 254 | memcpy(oiu.iu_uuid_str, osb->uuid_str, OCFS2_TEXT_UUID_LEN + 1); |
238 | oiu.iu_req.ir_flags |= OCFS2_INFO_FL_FILLED; | 255 | |
256 | o2info_set_request_filled(oiu); | ||
239 | 257 | ||
240 | if (o2info_to_user(oiu, req)) | 258 | if (o2info_to_user(oiu, req)) |
241 | goto bail; | 259 | goto bail; |
@@ -261,7 +279,8 @@ int ocfs2_info_handle_fs_features(struct inode *inode, | |||
261 | oif.if_compat_features = osb->s_feature_compat; | 279 | oif.if_compat_features = osb->s_feature_compat; |
262 | oif.if_incompat_features = osb->s_feature_incompat; | 280 | oif.if_incompat_features = osb->s_feature_incompat; |
263 | oif.if_ro_compat_features = osb->s_feature_ro_compat; | 281 | oif.if_ro_compat_features = osb->s_feature_ro_compat; |
264 | oif.if_req.ir_flags |= OCFS2_INFO_FL_FILLED; | 282 | |
283 | o2info_set_request_filled(oif); | ||
265 | 284 | ||
266 | if (o2info_to_user(oif, req)) | 285 | if (o2info_to_user(oif, req)) |
267 | goto bail; | 286 | goto bail; |
@@ -286,7 +305,7 @@ int ocfs2_info_handle_journal_size(struct inode *inode, | |||
286 | 305 | ||
287 | oij.ij_journal_size = osb->journal->j_inode->i_size; | 306 | oij.ij_journal_size = osb->journal->j_inode->i_size; |
288 | 307 | ||
289 | oij.ij_req.ir_flags |= OCFS2_INFO_FL_FILLED; | 308 | o2info_set_request_filled(oij); |
290 | 309 | ||
291 | if (o2info_to_user(oij, req)) | 310 | if (o2info_to_user(oij, req)) |
292 | goto bail; | 311 | goto bail; |
@@ -308,7 +327,7 @@ int ocfs2_info_handle_unknown(struct inode *inode, | |||
308 | if (o2info_from_user(oir, req)) | 327 | if (o2info_from_user(oir, req)) |
309 | goto bail; | 328 | goto bail; |
310 | 329 | ||
311 | oir.ir_flags &= ~OCFS2_INFO_FL_FILLED; | 330 | o2info_clear_request_filled(oir); |
312 | 331 | ||
313 | if (o2info_to_user(oir, req)) | 332 | if (o2info_to_user(oir, req)) |
314 | goto bail; | 333 | goto bail; |