ihandle: Remove ih_sync_thread
authorAndrew Deason <adeason@sinenomine.net>
Wed, 19 Dec 2012 23:11:40 +0000 (17:11 -0600)
committerDerrick Brashear <shadow@your-file-system.com>
Tue, 5 Mar 2013 12:27:35 +0000 (04:27 -0800)
commit1c4dc26584533afe3c6c7cfd24a0418cb1552a00
tree4c61888c1d9a0664e9885e8d1e83e183c373daf9
parenta3a79c5a15bff7e978ff4bae2d2a480b73750392
ihandle: Remove ih_sync_thread

ih_sync_thread currently syncs files flagged as needing
synchronization in the background every 10 seconds. This practice has
caused severe data corruption on more than one occasion over the past
few years (124359, 131530). It has also been argued repeatedly that it
provides no meaningful additional on-disk consistency, so there is no
reason for it to exist even if it were error-free.

Syncing files in the background provides no guarantee on the
consistency of the file contents, since the files are not synced in
any order with respect to each other, or with respect to what
filesystem operations may be occurring in the application.
Additionally, journalling filesystems common on fileserver backends
will typically ensure some consistency after a certain amount of time
(by default, 5 seconds on ZFS and ext3+), so doing this sync ourselves
is often redundant or even counterproductive.

So, to avoid current and future issues with ih_sync_thread interacting
with other ihandle users, just get rid of it. Files flagged as needing
sync are still synced (not in the background) during IH_REALLYCLOSE.

FIXES 131530

Change-Id: I29571c82c5b7454cd834b339fd48baeb9963a87b
Reviewed-on: http://gerrit.openafs.org/8797
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
src/vol/ihandle.c