@@ -240,6 +240,12 @@ static loff_t ovl_llseek(struct file *file, loff_t offset, int whence)
240
240
return ret ;
241
241
}
242
242
243
+ static void ovl_file_modified (struct file * file )
244
+ {
245
+ /* Update size/mtime */
246
+ ovl_copyattr (file_inode (file ));
247
+ }
248
+
243
249
static void ovl_file_accessed (struct file * file )
244
250
{
245
251
struct inode * inode , * upperinode ;
@@ -290,10 +296,8 @@ static void ovl_aio_cleanup_handler(struct ovl_aio_req *aio_req)
290
296
struct kiocb * orig_iocb = aio_req -> orig_iocb ;
291
297
292
298
if (iocb -> ki_flags & IOCB_WRITE ) {
293
- struct inode * inode = file_inode (orig_iocb -> ki_filp );
294
-
295
299
kiocb_end_write (iocb );
296
- ovl_copyattr ( inode );
300
+ ovl_file_modified ( orig_iocb -> ki_filp );
297
301
}
298
302
299
303
orig_iocb -> ki_pos = iocb -> ki_pos ;
@@ -436,7 +440,7 @@ static ssize_t ovl_write_iter(struct kiocb *iocb, struct iov_iter *iter)
436
440
ret = vfs_iter_write (real .file , iter , & iocb -> ki_pos , rwf );
437
441
file_end_write (real .file );
438
442
/* Update size */
439
- ovl_copyattr ( inode );
443
+ ovl_file_modified ( file );
440
444
} else {
441
445
struct ovl_aio_req * aio_req ;
442
446
@@ -526,7 +530,7 @@ static ssize_t ovl_splice_write(struct pipe_inode_info *pipe, struct file *out,
526
530
527
531
file_end_write (real .file );
528
532
/* Update size */
529
- ovl_copyattr ( inode );
533
+ ovl_file_modified ( out );
530
534
revert_creds (old_cred );
531
535
fdput (real );
532
536
@@ -607,7 +611,7 @@ static long ovl_fallocate(struct file *file, int mode, loff_t offset, loff_t len
607
611
revert_creds (old_cred );
608
612
609
613
/* Update size */
610
- ovl_copyattr ( inode );
614
+ ovl_file_modified ( file );
611
615
612
616
fdput (real );
613
617
@@ -691,7 +695,7 @@ static loff_t ovl_copyfile(struct file *file_in, loff_t pos_in,
691
695
revert_creds (old_cred );
692
696
693
697
/* Update size */
694
- ovl_copyattr ( inode_out );
698
+ ovl_file_modified ( file_out );
695
699
696
700
fdput (real_in );
697
701
fdput (real_out );
0 commit comments