Skip to content

Commit 1b061d9

Browse files
Christoph HellwigAl Viro
authored andcommitted
rename the generic fsync implementations
We don't name our generic fsync implementations very well currently. The no-op implementation for in-memory filesystems currently is called simple_sync_file which doesn't make too much sense to start with, the the generic one for simple filesystems is called simple_fsync which can lead to some confusion. This patch renames the generic file fsync method to generic_file_fsync to match the other generic_file_* routines it is supposed to be used with, and the no-op implementation to noop_fsync to make it obvious what to expect. In addition add some documentation for both methods. Signed-off-by: Christoph Hellwig <[email protected]> Signed-off-by: Al Viro <[email protected]>
1 parent 7ea8085 commit 1b061d9

File tree

23 files changed

+44
-32
lines changed

23 files changed

+44
-32
lines changed

arch/powerpc/platforms/cell/spufs/inode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ const struct file_operations spufs_context_fops = {
251251
.llseek = dcache_dir_lseek,
252252
.read = generic_read_dir,
253253
.readdir = dcache_readdir,
254-
.fsync = simple_sync_file,
254+
.fsync = noop_fsync,
255255
};
256256
EXPORT_SYMBOL_GPL(spufs_context_fops);
257257

fs/adfs/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ const struct file_operations adfs_dir_operations = {
197197
.read = generic_read_dir,
198198
.llseek = generic_file_llseek,
199199
.readdir = adfs_readdir,
200-
.fsync = simple_fsync,
200+
.fsync = generic_file_fsync,
201201
};
202202

203203
static int

fs/adfs/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const struct file_operations adfs_file_operations = {
2626
.read = do_sync_read,
2727
.aio_read = generic_file_aio_read,
2828
.mmap = generic_file_mmap,
29-
.fsync = simple_fsync,
29+
.fsync = generic_file_fsync,
3030
.write = do_sync_write,
3131
.aio_write = generic_file_aio_write,
3232
.splice_read = generic_file_splice_read,

fs/bfs/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static int bfs_readdir(struct file *f, void *dirent, filldir_t filldir)
7878
const struct file_operations bfs_dir_operations = {
7979
.read = generic_read_dir,
8080
.readdir = bfs_readdir,
81-
.fsync = simple_fsync,
81+
.fsync = generic_file_fsync,
8282
.llseek = generic_file_llseek,
8383
};
8484

fs/ext2/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ int ext2_fsync(struct file *file, int datasync)
4646
struct super_block *sb = file->f_mapping->host->i_sb;
4747
struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
4848

49-
ret = simple_fsync(file, datasync);
49+
ret = generic_file_fsync(file, datasync);
5050
if (ret == -EIO || test_and_clear_bit(AS_EIO, &mapping->flags)) {
5151
/* We don't really know where the IO error happened... */
5252
ext2_error(sb, __func__,

fs/ext4/fsync.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ int ext4_sync_file(struct file *file, int datasync)
9191
return ret;
9292

9393
if (!journal) {
94-
ret = simple_fsync(file, datasync);
94+
ret = generic_file_fsync(file, datasync);
9595
if (!ret && !list_empty(&inode->i_dentry))
9696
ext4_sync_parent(inode);
9797
return ret;

fs/fat/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ int fat_file_fsync(struct file *filp, int datasync)
154154
struct inode *inode = filp->f_mapping->host;
155155
int res, err;
156156

157-
res = simple_fsync(filp, datasync);
157+
res = generic_file_fsync(filp, datasync);
158158
err = sync_mapping_buffers(MSDOS_SB(inode->i_sb)->fat_inode->i_mapping);
159159

160160
return res ? res : err;

fs/hugetlbfs/inode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ static void init_once(void *foo)
688688
const struct file_operations hugetlbfs_file_operations = {
689689
.read = hugetlbfs_read,
690690
.mmap = hugetlbfs_file_mmap,
691-
.fsync = simple_sync_file,
691+
.fsync = noop_fsync,
692692
.get_unmapped_area = hugetlb_get_unmapped_area,
693693
};
694694

fs/libfs.c

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,6 @@ struct dentry *simple_lookup(struct inode *dir, struct dentry *dentry, struct na
5858
return NULL;
5959
}
6060

61-
int simple_sync_file(struct file *file, int datasync)
62-
{
63-
return 0;
64-
}
65-
6661
int dcache_dir_open(struct inode *inode, struct file *file)
6762
{
6863
static struct qstr cursor_name = {.len = 1, .name = "."};
@@ -190,7 +185,7 @@ const struct file_operations simple_dir_operations = {
190185
.llseek = dcache_dir_lseek,
191186
.read = generic_read_dir,
192187
.readdir = dcache_readdir,
193-
.fsync = simple_sync_file,
188+
.fsync = noop_fsync,
194189
};
195190

196191
const struct inode_operations simple_dir_inode_operations = {
@@ -851,7 +846,16 @@ struct dentry *generic_fh_to_parent(struct super_block *sb, struct fid *fid,
851846
}
852847
EXPORT_SYMBOL_GPL(generic_fh_to_parent);
853848

854-
int simple_fsync(struct file *file, int datasync)
849+
/**
850+
* generic_file_fsync - generic fsync implementation for simple filesystems
851+
* @file: file to synchronize
852+
* @datasync: only synchronize essential metadata if true
853+
*
854+
* This is a generic implementation of the fsync method for simple
855+
* filesystems which track all non-inode metadata in the buffers list
856+
* hanging off the address_space structure.
857+
*/
858+
int generic_file_fsync(struct file *file, int datasync)
855859
{
856860
struct writeback_control wbc = {
857861
.sync_mode = WB_SYNC_ALL,
@@ -872,7 +876,15 @@ int simple_fsync(struct file *file, int datasync)
872876
ret = err;
873877
return ret;
874878
}
875-
EXPORT_SYMBOL(simple_fsync);
879+
EXPORT_SYMBOL(generic_file_fsync);
880+
881+
/*
882+
* No-op implementation of ->fsync for in-memory filesystems.
883+
*/
884+
int noop_fsync(struct file *file, int datasync)
885+
{
886+
return 0;
887+
}
876888

877889
EXPORT_SYMBOL(dcache_dir_close);
878890
EXPORT_SYMBOL(dcache_dir_lseek);
@@ -895,7 +907,7 @@ EXPORT_SYMBOL(simple_release_fs);
895907
EXPORT_SYMBOL(simple_rename);
896908
EXPORT_SYMBOL(simple_rmdir);
897909
EXPORT_SYMBOL(simple_statfs);
898-
EXPORT_SYMBOL(simple_sync_file);
910+
EXPORT_SYMBOL(noop_fsync);
899911
EXPORT_SYMBOL(simple_unlink);
900912
EXPORT_SYMBOL(simple_read_from_buffer);
901913
EXPORT_SYMBOL(simple_write_to_buffer);

fs/minix/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const struct file_operations minix_dir_operations = {
2222
.llseek = generic_file_llseek,
2323
.read = generic_read_dir,
2424
.readdir = minix_readdir,
25-
.fsync = simple_fsync,
25+
.fsync = generic_file_fsync,
2626
};
2727

2828
static inline void dir_put_page(struct page *page)

fs/minix/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const struct file_operations minix_file_operations = {
1919
.write = do_sync_write,
2020
.aio_write = generic_file_aio_write,
2121
.mmap = generic_file_mmap,
22-
.fsync = simple_fsync,
22+
.fsync = generic_file_fsync,
2323
.splice_read = generic_file_splice_read,
2424
};
2525

fs/omfs/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ const struct file_operations omfs_file_operations = {
329329
.aio_read = generic_file_aio_read,
330330
.aio_write = generic_file_aio_write,
331331
.mmap = generic_file_mmap,
332-
.fsync = simple_fsync,
332+
.fsync = generic_file_fsync,
333333
.splice_read = generic_file_splice_read,
334334
};
335335

fs/qnx4/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ const struct file_operations qnx4_dir_operations =
8080
.llseek = generic_file_llseek,
8181
.read = generic_read_dir,
8282
.readdir = qnx4_readdir,
83-
.fsync = simple_fsync,
83+
.fsync = generic_file_fsync,
8484
};
8585

8686
const struct inode_operations qnx4_dir_inode_operations =

fs/ramfs/file-mmu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const struct file_operations ramfs_file_operations = {
4343
.write = do_sync_write,
4444
.aio_write = generic_file_aio_write,
4545
.mmap = generic_file_mmap,
46-
.fsync = simple_sync_file,
46+
.fsync = noop_fsync,
4747
.splice_read = generic_file_splice_read,
4848
.splice_write = generic_file_splice_write,
4949
.llseek = generic_file_llseek,

fs/ramfs/file-nommu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const struct file_operations ramfs_file_operations = {
4242
.aio_read = generic_file_aio_read,
4343
.write = do_sync_write,
4444
.aio_write = generic_file_aio_write,
45-
.fsync = simple_sync_file,
45+
.fsync = noop_fsync,
4646
.splice_read = generic_file_splice_read,
4747
.splice_write = generic_file_splice_write,
4848
.llseek = generic_file_llseek,

fs/sysv/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const struct file_operations sysv_dir_operations = {
2424
.llseek = generic_file_llseek,
2525
.read = generic_read_dir,
2626
.readdir = sysv_readdir,
27-
.fsync = simple_fsync,
27+
.fsync = generic_file_fsync,
2828
};
2929

3030
static inline void dir_put_page(struct page *page)

fs/sysv/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const struct file_operations sysv_file_operations = {
2626
.write = do_sync_write,
2727
.aio_write = generic_file_aio_write,
2828
.mmap = generic_file_mmap,
29-
.fsync = simple_fsync,
29+
.fsync = generic_file_fsync,
3030
.splice_read = generic_file_splice_read,
3131
};
3232

fs/udf/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,5 +211,5 @@ const struct file_operations udf_dir_operations = {
211211
.read = generic_read_dir,
212212
.readdir = udf_readdir,
213213
.unlocked_ioctl = udf_ioctl,
214-
.fsync = simple_fsync,
214+
.fsync = generic_file_fsync,
215215
};

fs/udf/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ const struct file_operations udf_file_operations = {
224224
.write = do_sync_write,
225225
.aio_write = udf_file_aio_write,
226226
.release = udf_release_file,
227-
.fsync = simple_fsync,
227+
.fsync = generic_file_fsync,
228228
.splice_read = generic_file_splice_read,
229229
.llseek = generic_file_llseek,
230230
};

fs/ufs/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,6 @@ int ufs_empty_dir(struct inode * inode)
666666
const struct file_operations ufs_dir_operations = {
667667
.read = generic_read_dir,
668668
.readdir = ufs_readdir,
669-
.fsync = simple_fsync,
669+
.fsync = generic_file_fsync,
670670
.llseek = generic_file_llseek,
671671
};

fs/ufs/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,6 @@ const struct file_operations ufs_file_operations = {
4242
.aio_write = generic_file_aio_write,
4343
.mmap = generic_file_mmap,
4444
.open = dquot_file_open,
45-
.fsync = simple_fsync,
45+
.fsync = generic_file_fsync,
4646
.splice_read = generic_file_splice_read,
4747
};

include/linux/fs.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2348,7 +2348,7 @@ extern int simple_link(struct dentry *, struct inode *, struct dentry *);
23482348
extern int simple_unlink(struct inode *, struct dentry *);
23492349
extern int simple_rmdir(struct inode *, struct dentry *);
23502350
extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
2351-
extern int simple_sync_file(struct file *, int);
2351+
extern int noop_fsync(struct file *, int);
23522352
extern int simple_empty(struct dentry *);
23532353
extern int simple_readpage(struct file *file, struct page *page);
23542354
extern int simple_write_begin(struct file *file, struct address_space *mapping,
@@ -2373,7 +2373,7 @@ extern ssize_t simple_read_from_buffer(void __user *to, size_t count,
23732373
extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos,
23742374
const void __user *from, size_t count);
23752375

2376-
extern int simple_fsync(struct file *, int);
2376+
extern int generic_file_fsync(struct file *, int);
23772377

23782378
#ifdef CONFIG_MIGRATION
23792379
extern int buffer_migrate_page(struct address_space *,

mm/shmem.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2433,7 +2433,7 @@ static const struct file_operations shmem_file_operations = {
24332433
.write = do_sync_write,
24342434
.aio_read = shmem_file_aio_read,
24352435
.aio_write = generic_file_aio_write,
2436-
.fsync = simple_sync_file,
2436+
.fsync = noop_fsync,
24372437
.splice_read = generic_file_splice_read,
24382438
.splice_write = generic_file_splice_write,
24392439
#endif

0 commit comments

Comments
 (0)