X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fsync.c;h=92ca208777d562e64bfc769dc41a326f7c3da84e;hb=2e1496707560ecf98e9b0604622c0990f94861d3;hp=ba76b9623e7e809f6b3c5e6223020836069dc4ab;hpb=053d8f6622701f849fda2ca2c9ae596c13599ba9;p=pandora-kernel.git diff --git a/fs/sync.c b/fs/sync.c index ba76b9623e7e..92ca208777d5 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -128,6 +129,29 @@ void emergency_sync(void) } } +/* + * sync a single super + */ +SYSCALL_DEFINE1(syncfs, int, fd) +{ + struct file *file; + struct super_block *sb; + int ret; + int fput_needed; + + file = fget_light(fd, &fput_needed); + if (!file) + return -EBADF; + sb = file->f_dentry->d_sb; + + down_read(&sb->s_umount); + ret = sync_filesystem(sb); + up_read(&sb->s_umount); + + fput_light(file, fput_needed); + return ret; +} + /** * vfs_fsync_range - helper to sync a range of data & metadata to disk * @file: file to sync