A computer-implemented method comprising: writing, by a software application on at least one of a plurality of processors, a first set of data to a first buffer; characterised by: requesting that an encrypted file system save the data stored in the first buffer, the encrypted file system executing on at least one of the plurality of processors; locking the first buffer after the requesting so that additional data is not written to the first buffer until the first buffer is unlocked; encrypting, by the encrypted file system, the first set of data resulting in a first set of encrypted data, wherein the first set of encrypted data is stored in a second buffer; writing, by the encrypted file system, the first set of encrypted data from the second buffer to a nonvolatile storage area; unlocking the first buffer, wherein the unlocking is performed after the encrypting but before all of the first set of encrypted data has been written from the second buffer to the nonvolatile storage area; and writing, by the software application, a second set of data to the first buffer, wherein the second set of data is written to the first buffer before the encrypted file system has completed writing the first set of encrypted data to the nonvolatile storage area, wherein the software application waits to write the second set of data to the first buffer until the first buffer is unlocked. writing, by a software application on at least one of a plurality of processors, a first set of data to a first buffer; characterised by: requesting that an encrypted file system save the data stored in the first buffer, the encrypted file system executing on at least one of the plurality of processors; locking the first buffer after the requesting so that additional data is not written to the first buffer until the first buffer is unlocked; encrypting, by the encrypted file system, the first set of data resulting in a first set of encrypted data, wherein the first set of encrypted data is stored in a second buffer; writing, by the encrypted file system, the first set of encrypted data from the second buffer to a nonvolatile storage area; unlocking the first buffer, wherein the unlocking is performed after the encrypting but before all of the first set of encrypted data has been written from the second buffer to the nonvolatile storage area; and writing, by the software application, a second set of data to the first buffer, wherein the second set of data is written to the first buffer before the encrypted file system has completed writing the first set of encrypted data to the nonvolatile storage area, wherein the software application waits to write the second set of data to the first buffer until the first buffer is unlocked. requesting that an encrypted file system save the data stored in the first buffer, the encrypted file system executing on at least one of the plurality of processors; locking the first buffer after the requesting so that additional data is not written to the first buffer until the first buffer is unlocked; encrypting, by the encrypted file system, the first set of data resulting in a first set of encrypted data, wherein the first set of encrypted data is stored in a second buffer; writing, by the encrypted file system, the first set of encrypted data from the second buffer to a nonvolatile storage area; unlocking the first buffer, wherein the unlocking is performed after the encrypting but before all of the first set of encrypted data has been written from the second buffer to the nonvolatile storage area; and writing, by the software application, a second set of data to the first buffer, wherein the second set of data is written to the first buffer before the encrypted file system has completed writing the first set of encrypted data to the nonvolatile storage area, wherein the software application waits to write the second set of data to the first buffer until the first buffer is unlocked.