diff options
Diffstat (limited to 'fs/gfs2/ops_file.c')
-rw-r--r-- | fs/gfs2/ops_file.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/fs/gfs2/ops_file.c b/fs/gfs2/ops_file.c index 1737af98a420..21b397d0a296 100644 --- a/fs/gfs2/ops_file.c +++ b/fs/gfs2/ops_file.c | |||
@@ -134,7 +134,6 @@ static const u32 fsflags_to_gfs2[32] = { | |||
134 | [7] = GFS2_DIF_NOATIME, | 134 | [7] = GFS2_DIF_NOATIME, |
135 | [12] = GFS2_DIF_EXHASH, | 135 | [12] = GFS2_DIF_EXHASH, |
136 | [14] = GFS2_DIF_INHERIT_JDATA, | 136 | [14] = GFS2_DIF_INHERIT_JDATA, |
137 | [20] = GFS2_DIF_INHERIT_DIRECTIO, | ||
138 | }; | 137 | }; |
139 | 138 | ||
140 | static const u32 gfs2_to_fsflags[32] = { | 139 | static const u32 gfs2_to_fsflags[32] = { |
@@ -143,7 +142,6 @@ static const u32 gfs2_to_fsflags[32] = { | |||
143 | [gfs2fl_AppendOnly] = FS_APPEND_FL, | 142 | [gfs2fl_AppendOnly] = FS_APPEND_FL, |
144 | [gfs2fl_NoAtime] = FS_NOATIME_FL, | 143 | [gfs2fl_NoAtime] = FS_NOATIME_FL, |
145 | [gfs2fl_ExHash] = FS_INDEX_FL, | 144 | [gfs2fl_ExHash] = FS_INDEX_FL, |
146 | [gfs2fl_InheritDirectio] = FS_DIRECTIO_FL, | ||
147 | [gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL, | 145 | [gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL, |
148 | }; | 146 | }; |
149 | 147 | ||
@@ -161,12 +159,8 @@ static int gfs2_get_flags(struct file *filp, u32 __user *ptr) | |||
161 | return error; | 159 | return error; |
162 | 160 | ||
163 | fsflags = fsflags_cvt(gfs2_to_fsflags, ip->i_di.di_flags); | 161 | fsflags = fsflags_cvt(gfs2_to_fsflags, ip->i_di.di_flags); |
164 | if (!S_ISDIR(inode->i_mode)) { | 162 | if (!S_ISDIR(inode->i_mode) && ip->i_di.di_flags & GFS2_DIF_JDATA) |
165 | if (ip->i_di.di_flags & GFS2_DIF_JDATA) | 163 | fsflags |= FS_JOURNAL_DATA_FL; |
166 | fsflags |= FS_JOURNAL_DATA_FL; | ||
167 | if (ip->i_di.di_flags & GFS2_DIF_DIRECTIO) | ||
168 | fsflags |= FS_DIRECTIO_FL; | ||
169 | } | ||
170 | if (put_user(fsflags, ptr)) | 164 | if (put_user(fsflags, ptr)) |
171 | error = -EFAULT; | 165 | error = -EFAULT; |
172 | 166 | ||
@@ -195,13 +189,11 @@ void gfs2_set_inode_flags(struct inode *inode) | |||
195 | 189 | ||
196 | /* Flags that can be set by user space */ | 190 | /* Flags that can be set by user space */ |
197 | #define GFS2_FLAGS_USER_SET (GFS2_DIF_JDATA| \ | 191 | #define GFS2_FLAGS_USER_SET (GFS2_DIF_JDATA| \ |
198 | GFS2_DIF_DIRECTIO| \ | ||
199 | GFS2_DIF_IMMUTABLE| \ | 192 | GFS2_DIF_IMMUTABLE| \ |
200 | GFS2_DIF_APPENDONLY| \ | 193 | GFS2_DIF_APPENDONLY| \ |
201 | GFS2_DIF_NOATIME| \ | 194 | GFS2_DIF_NOATIME| \ |
202 | GFS2_DIF_SYNC| \ | 195 | GFS2_DIF_SYNC| \ |
203 | GFS2_DIF_SYSTEM| \ | 196 | GFS2_DIF_SYSTEM| \ |
204 | GFS2_DIF_INHERIT_DIRECTIO| \ | ||
205 | GFS2_DIF_INHERIT_JDATA) | 197 | GFS2_DIF_INHERIT_JDATA) |
206 | 198 | ||
207 | /** | 199 | /** |
@@ -292,8 +284,6 @@ static int gfs2_set_flags(struct file *filp, u32 __user *ptr) | |||
292 | if (!S_ISDIR(inode->i_mode)) { | 284 | if (!S_ISDIR(inode->i_mode)) { |
293 | if (gfsflags & GFS2_DIF_INHERIT_JDATA) | 285 | if (gfsflags & GFS2_DIF_INHERIT_JDATA) |
294 | gfsflags ^= (GFS2_DIF_JDATA | GFS2_DIF_INHERIT_JDATA); | 286 | gfsflags ^= (GFS2_DIF_JDATA | GFS2_DIF_INHERIT_JDATA); |
295 | if (gfsflags & GFS2_DIF_INHERIT_DIRECTIO) | ||
296 | gfsflags ^= (GFS2_DIF_DIRECTIO | GFS2_DIF_INHERIT_DIRECTIO); | ||
297 | return do_gfs2_set_flags(filp, gfsflags, ~0); | 287 | return do_gfs2_set_flags(filp, gfsflags, ~0); |
298 | } | 288 | } |
299 | return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA); | 289 | return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA); |
@@ -494,11 +484,6 @@ static int gfs2_open(struct inode *inode, struct file *file) | |||
494 | goto fail_gunlock; | 484 | goto fail_gunlock; |
495 | } | 485 | } |
496 | 486 | ||
497 | /* Listen to the Direct I/O flag */ | ||
498 | |||
499 | if (ip->i_di.di_flags & GFS2_DIF_DIRECTIO) | ||
500 | file->f_flags |= O_DIRECT; | ||
501 | |||
502 | gfs2_glock_dq_uninit(&i_gh); | 487 | gfs2_glock_dq_uninit(&i_gh); |
503 | } | 488 | } |
504 | 489 | ||