]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/hfs/hfs_vfsops.c
xnu-1699.24.23.tar.gz
[apple/xnu.git] / bsd / hfs / hfs_vfsops.c
index 0bac8a3eb2be303bbb233c7468040775067e20a9..adf02520b5e3648d66bbe69508189c6d3a1865cc 100644 (file)
@@ -3966,6 +3966,9 @@ hfs_extendfs(struct hfsmount *hfsmp, u_int64_t newsize, vfs_context_t context)
        hfsmp->hfs_flags |= HFS_RESIZE_IN_PROGRESS;
        HFS_MOUNT_UNLOCK(hfsmp, TRUE);
 
+       /* Start with a clean journal. */
+       hfs_journal_flush(hfsmp, TRUE);
+
        /*
         * Enclose changes inside a transaction.
         */
@@ -4244,6 +4247,9 @@ out:
        }
        if (transaction_begun) {
                hfs_end_transaction(hfsmp);
+               hfs_journal_flush(hfsmp, FALSE);
+               /* Just to be sure, sync all data to the disk */
+               (void) VNOP_IOCTL(hfsmp->hfs_devvp, DKIOCSYNCHRONIZECACHE, NULL, FWRITE, context);
        }
 
        return MacToVFSError(error);