X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=fs%2Fsync.c;h=2967562d416fb52e54a1af5840d0dc63c0d25cfb;hb=df573d2fd1b077b98ffc3eb62a9908075e69e578;hp=7cd005ea76390f385dc85af2c11e8121b6b4dd69;hpb=2d408b42ed0a287c64a94b48e24c6bfa95035019;p=linux-2.6-omap-h63xx.git diff --git a/fs/sync.c b/fs/sync.c index 7cd005ea763..2967562d416 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -64,7 +64,7 @@ int file_fsync(struct file *filp, struct dentry *dentry, int datasync) /* sync the superblock to buffers */ sb = inode->i_sb; lock_super(sb); - if (sb->s_op->write_super) + if (sb->s_dirt && sb->s_op->write_super) sb->s_op->write_super(sb); unlock_super(sb); @@ -139,7 +139,8 @@ asmlinkage long sys_fdatasync(unsigned int fd) * before performing the write. * * SYNC_FILE_RANGE_WRITE: initiate writeout of all those dirty pages in the - * range which are not presently under writeback. + * range which are not presently under writeback. Note that this may block for + * significant periods due to exhaustion of disk request structures. * * SYNC_FILE_RANGE_WAIT_AFTER: wait upon writeout of all pages in the range * after performing the write.