static void dyn_fsync_force_flush(void) { /* flush all outstanding buffers */ wakeup_flusher_threads(0); sync_filesystems(0); sync_filesystems(1); }
/* * sync everything. Start out by waking pdflush, because that writes back * all queues in parallel. */ static void do_sync(void) { wakeup_flusher_threads(0, WB_REASON_SYNC); sync_filesystems(0); sync_filesystems(1); if (unlikely(laptop_mode)) laptop_sync_completion(); return; }
static void dyn_fsync_early_suspend(struct early_suspend *h) { mutex_lock(&fsync_mutex); if (dyn_fsync_active) { early_suspend_active = true; #if 1 wakeup_flusher_threads(0); sync_filesystems(0); sync_filesystems(1); #endif } mutex_unlock(&fsync_mutex); }
static void dyn_fsync_early_suspend(struct early_suspend *h) { mutex_lock(&fsync_mutex); if (dyn_fsync_active) { early_suspend_active = true; #if 1 /* flush all outstanding buffers */ wakeup_flusher_threads(0, WB_REASON_SYNC); sync_filesystems(0); sync_filesystems(1); #endif } mutex_unlock(&fsync_mutex); }
/* * Sync everything. We start by waking flusher threads so that most of * writeback runs on all devices in parallel. Then we sync all inodes reliably * which effectively also waits for all flusher threads to finish doing * writeback. At this point all data is on disk so metadata should be stable * and we tell filesystems to sync their metadata via ->sync_fs() calls. * Finally, we writeout all block devices because some filesystems (e.g. ext2) * just write metadata (such as inodes or bitmaps) to block device page cache * and do not sync it on their own in ->sync_fs(). */ static void do_sync(void) { int nowait = 0, wait = 1; wakeup_flusher_threads(0, WB_REASON_SYNC); iterate_supers(sync_inodes_one_sb, NULL); iterate_supers(sync_fs_one_sb, &nowait); iterate_supers(sync_fs_one_sb, &wait); iterate_bdevs(fdatawrite_one_bdev, NULL); iterate_bdevs(fdatawait_one_bdev, NULL); if (unlikely(laptop_mode)) laptop_sync_completion(); return; }
static void do_laptop_sync(struct work_struct *work) { wakeup_flusher_threads(0); kfree(work); }
static void dyn_fsync_force_flush(void) { /* flush all outstanding buffers */ wakeup_flusher_threads(0, WB_REASON_SYNC); sync_filesystems(); }