Skip to content

Commit c002728

Browse files
committed
ovl: add helper ovl_file_modified()
A simple wrapper for updating ovl inode size/mtime, to conform with ovl_file_accessed(). Signed-off-by: Amir Goldstein <[email protected]>
1 parent f7621b1 commit c002728

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

fs/overlayfs/file.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,12 @@ static loff_t ovl_llseek(struct file *file, loff_t offset, int whence)
240240
return ret;
241241
}
242242

243+
static void ovl_file_modified(struct file *file)
244+
{
245+
/* Update size/mtime */
246+
ovl_copyattr(file_inode(file));
247+
}
248+
243249
static void ovl_file_accessed(struct file *file)
244250
{
245251
struct inode *inode, *upperinode;
@@ -290,10 +296,8 @@ static void ovl_aio_cleanup_handler(struct ovl_aio_req *aio_req)
290296
struct kiocb *orig_iocb = aio_req->orig_iocb;
291297

292298
if (iocb->ki_flags & IOCB_WRITE) {
293-
struct inode *inode = file_inode(orig_iocb->ki_filp);
294-
295299
kiocb_end_write(iocb);
296-
ovl_copyattr(inode);
300+
ovl_file_modified(orig_iocb->ki_filp);
297301
}
298302

299303
orig_iocb->ki_pos = iocb->ki_pos;
@@ -436,7 +440,7 @@ static ssize_t ovl_write_iter(struct kiocb *iocb, struct iov_iter *iter)
436440
ret = vfs_iter_write(real.file, iter, &iocb->ki_pos, rwf);
437441
file_end_write(real.file);
438442
/* Update size */
439-
ovl_copyattr(inode);
443+
ovl_file_modified(file);
440444
} else {
441445
struct ovl_aio_req *aio_req;
442446

@@ -526,7 +530,7 @@ static ssize_t ovl_splice_write(struct pipe_inode_info *pipe, struct file *out,
526530

527531
file_end_write(real.file);
528532
/* Update size */
529-
ovl_copyattr(inode);
533+
ovl_file_modified(out);
530534
revert_creds(old_cred);
531535
fdput(real);
532536

@@ -607,7 +611,7 @@ static long ovl_fallocate(struct file *file, int mode, loff_t offset, loff_t len
607611
revert_creds(old_cred);
608612

609613
/* Update size */
610-
ovl_copyattr(inode);
614+
ovl_file_modified(file);
611615

612616
fdput(real);
613617

@@ -691,7 +695,7 @@ static loff_t ovl_copyfile(struct file *file_in, loff_t pos_in,
691695
revert_creds(old_cred);
692696

693697
/* Update size */
694-
ovl_copyattr(inode_out);
698+
ovl_file_modified(file_out);
695699

696700
fdput(real_in);
697701
fdput(real_out);

0 commit comments

Comments
 (0)