diff options
Diffstat (limited to 'fs/open.c')
| -rw-r--r-- | fs/open.c | 7 |
1 files changed, 2 insertions, 5 deletions
| @@ -8,7 +8,6 @@ | |||
| 8 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
| 9 | #include <linux/file.h> | 9 | #include <linux/file.h> |
| 10 | #include <linux/fdtable.h> | 10 | #include <linux/fdtable.h> |
| 11 | #include <linux/quotaops.h> | ||
| 12 | #include <linux/fsnotify.h> | 11 | #include <linux/fsnotify.h> |
| 13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
| 14 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
| @@ -271,17 +270,15 @@ static long do_sys_truncate(const char __user *pathname, loff_t length) | |||
| 271 | * Make sure that there are no leases. get_write_access() protects | 270 | * Make sure that there are no leases. get_write_access() protects |
| 272 | * against the truncate racing with a lease-granting setlease(). | 271 | * against the truncate racing with a lease-granting setlease(). |
| 273 | */ | 272 | */ |
| 274 | error = break_lease(inode, FMODE_WRITE); | 273 | error = break_lease(inode, O_WRONLY); |
| 275 | if (error) | 274 | if (error) |
| 276 | goto put_write_and_out; | 275 | goto put_write_and_out; |
| 277 | 276 | ||
| 278 | error = locks_verify_truncate(inode, NULL, length); | 277 | error = locks_verify_truncate(inode, NULL, length); |
| 279 | if (!error) | 278 | if (!error) |
| 280 | error = security_path_truncate(&path, length, 0); | 279 | error = security_path_truncate(&path, length, 0); |
| 281 | if (!error) { | 280 | if (!error) |
| 282 | vfs_dq_init(inode); | ||
| 283 | error = do_truncate(path.dentry, length, 0, NULL); | 281 | error = do_truncate(path.dentry, length, 0, NULL); |
| 284 | } | ||
| 285 | 282 | ||
| 286 | put_write_and_out: | 283 | put_write_and_out: |
| 287 | put_write_access(inode); | 284 | put_write_access(inode); |
