diff options
| author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-12 16:29:56 -0400 |
|---|---|---|
| committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-15 01:04:30 -0400 |
| commit | e0a51ccce8533a91c7cc0cd0adc5662697c9bcfa (patch) | |
| tree | 91408761ffbd7da783886c94a354d3b642e10587 /libbcachefs/fs-io.c | |
| parent | 3165f53b28b87b3c46c95763bae5e40a29166e2e (diff) | |
Update bcachefs sources to 3e93567c51 bcachefs: Switch to local_clock() for fastpath time source
Diffstat (limited to 'libbcachefs/fs-io.c')
| -rw-r--r-- | libbcachefs/fs-io.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libbcachefs/fs-io.c b/libbcachefs/fs-io.c index 2ea6e79f..02ef3430 100644 --- a/libbcachefs/fs-io.c +++ b/libbcachefs/fs-io.c @@ -1527,7 +1527,7 @@ out: if (!bch2_page_state_create(page, __GFP_NOFAIL)->uptodate) { ret = bch2_page_state_set(c, inode_inum(inode), &page, 1); if (ret) - goto out; + goto err; } ret = bch2_page_reservation_get(c, inode, page, res, @@ -3102,6 +3102,10 @@ long bch2_fallocate_dispatch(struct file *file, int mode, inode_dio_wait(&inode->v); bch2_pagecache_block_get(&inode->ei_pagecache_lock); + ret = file_modified(file); + if (ret) + goto err; + if (!(mode & ~(FALLOC_FL_KEEP_SIZE|FALLOC_FL_ZERO_RANGE))) ret = bchfs_fallocate(inode, mode, offset, len); else if (mode == (FALLOC_FL_PUNCH_HOLE|FALLOC_FL_KEEP_SIZE)) @@ -3112,8 +3116,7 @@ long bch2_fallocate_dispatch(struct file *file, int mode, ret = bchfs_fcollapse_finsert(inode, offset, len, false); else ret = -EOPNOTSUPP; - - +err: bch2_pagecache_block_put(&inode->ei_pagecache_lock); inode_unlock(&inode->v); percpu_ref_put(&c->writes); |
