commit f96d3c00f514c5901d7bd50a893f2ff3887623c7
Author: Ondrej Holy <oholy@redhat.com>
Date:   2013-05-24

    Update NEWS for 1.17.1 release

M	NEWS

commit eb62d94a9a3141fd016b0abad8dcf142c4c0d962
Author: Colin Walters <walters@verbum.org>
Date:	2013-05-21

    metadata: Downgrade journal short-read to debug

    Because multiple clients can be concurrently writing to the journal,
    it's possible to see partially written journal entries.  Emitting
    g_warning() here breaks test cases.

    The real fix would be safe concurrent access to the journal, but
    that's harder.

    https://bugzilla.gnome.org/700785

M	metadata/metatree.c

commit 5ab3363029f94f30cf716aa55fe4f581ef67f14d
Author: Colin Walters <walters@verbum.org>
Date:	2013-05-21

    sftp: Fix two compilation warnings

M	daemon/gvfsbackendsftp.c

commit 1b5dbbe63f607cb9fadbc7109cc3124460a185d8
Author: Richard Stanislavský <kenny.vv@gmail.com>
Date:	2013-05-21

    Updated slovak translation

M	po/sk.po

commit e793a0476feeaa0a3cc4f1fd043c15c297707455
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:	2013-05-13

    metadata: Flush all scheduled writeouts on daemon exit

    This patch ensures that we safely write all data from journals to
    metatrees on exit. E.g. if anything happens to session bus or we get
    replaced by some other instance.

    https://bugzilla.gnome.org/show_bug.cgi?id=637095

M	metadata/meta-daemon.c

commit c8e7d1375715545f28a0943ce7657330e3b70acd
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:	2013-05-13

    metadata: Use shorter writeout timeout on NFS

    Since we've moved journal to a non-volatile storage, let's flush
    more often to minimize a chance of data loss.

    https://bugzilla.gnome.org/show_bug.cgi?id=637095

M	metadata/meta-daemon.c
M	metadata/metatree.c
M	metadata/metatree.h

commit 749c872b9192a84e65d83bc0f0eb697ab247fdd8
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:	2013-05-13

    metadata: Put journal in $XDG_RUNTIME_DIR for shared NFS homedir case

    This essentially moves is_on_nfs() from metatree.c in metabuilder.c
    as the more appropriate place for shared functions. It's used in
    meta_builder_get_journal_filename() to determine whether to use
    original
    metadata directory or temporary $XDG_RUNTIME_DIR location to work
    around
    certain NFS issues.

    The idea behind this change is to have separate journals for every
    client
    that is accessing shared homedir. Then the only possible point
    of conflict
    is on rotation which is backed up by atomic file rename. Without this,
    there were multiple metadata daemons writing to the same journal file,
    overwriting changes to each other and being racy in flush and
    rotation.

    There will always be a conflict between clients, overwriting tree file
    data by flushing their journals.

    https://bugzilla.gnome.org/show_bug.cgi?id=637095

M	metadata/metabuilder.c
M	metadata/metabuilder.h
M	metadata/metatree.c

commit 3381859ba7a92f4824ff09a7aa951407bf4e1c72
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:	2013-05-13

    metadata: Create new journal if it doesn't exist

    With concurrent access of multiple daemons there may be a moment when
    tree file exists but not the journal file. The daemon can't write
    anything without journal and is doomed until next rotation. Missing
    journal file can also happen on system crash etc.

    This patch tries to create new journal file only when it doesn't
    exist,
    other errors still lead to inability to store anything.

    This will also allow us to have journal file somewhere else, e.g. on
    a non-persistent storage.

    https://bugzilla.gnome.org/show_bug.cgi?id=637095

M	metadata/metabuilder.c
M	metadata/metabuilder.h
M	metadata/metatree.c

commit 21811b3ae17ec705327484c1ce0be75fec95bb0e
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:	2013-05-13

    metadata: Be more resistive to broken journal files

    In shared NFS homedir case with multiple clients writing to the same
    mmaped journal file data can get easily corrupted. The daemon iterates
    over a journal file on flush taking in account variable entry size and
    advances according to the data read.

    However in certain case invalid data are read making us to jump out of
    bounds. In case of zero entry size we would stand at the same place
    leading to infinite loop.

    This patch checks if the indicated entry size is at least the size of
    the structure we're getting the size from (it's a first element)
    and breaks
    the iteration cycle if it's not. This may lead to partial data loss
    on flush
    as we don't process the rest of the journal file. Old data from
    existing
    tree file will be preserved of course, only few recent changes would
    get lost.

    https://bugzilla.gnome.org/show_bug.cgi?id=637095

M	metadata/metatree.c

commit 6b12c3d7b33c87a7fea228106f39ecf2a3e0f310
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:	2013-05-13

    metadata: Force tree re-read after successful flush

    Once we flush the journal and write new tree file we need to re-read
    it to refresh internal data structures (and mmap data from the right
    file). We originally left this work on meta_tree_refresh_locked() and
    meta_tree_needs_rereading() respectively where we checked the rotated
    bit.

    In detail, metabuilder wrote a new temp tree file, then explicitly
    opened
    the current (old) one, wrote the rotated bit and atomically
    replaced the
    temp file. Then the metadata daemon having mmapped the old file
    detected
    the rotated bit and scheduled journal and tree file reopen+reread.

    However in concurrent environment like NFS homedir where multiple
    metadata
    daemons are handling the same database we may run in a race and
    not getting
    the rotated bit detected properly.

    This led to an infinite loop between meta_journal_add_entry() -
    meta_tree_flush_locked() - meta_tree_refresh_locked() -
    meta_journal_add_entry()
    since we had full journal, didn't detect the rotation and since
    the files
    were already unlinked, there was no force to break that loop. This
    patch
    forces tree file re-read after successful flush to prevent this issue.

    https://bugzilla.gnome.org/show_bug.cgi?id=637095

M	metadata/metatree.c

commit 051556ee1dd6b8af290cc15875290b756600b71b
Author: Timothy Arceri <t_arceri@yahoo.com.au>
Date:	2013-05-07

    Implement clean shutdown in sftp backend

    https://bugzilla.gnome.org/show_bug.cgi?id=511802

M	daemon/gvfsbackendsftp.c

commit 8c5d70c411d3b7f0c0622e0a73567e83b2745249
Author: Timothy Arceri <t_arceri@yahoo.com.au>
Date:	2013-04-20

    Adds remaining shutdown infrastructure and call from cdda backend.

    https://bugzilla.gnome.org/show_bug.cgi?id=511802

M	daemon/daemon-main.c
M	daemon/gvfsbackend.c
M	daemon/gvfsbackend.h
M	daemon/gvfsbackendcdda.c

commit 238a92496f5ab165b52f90d414379525cb262ee1
Author: Philip Langdale <philipl@overt.org>
Date:	2013-05-01

    MTP: Fix compilation warning.

    The add_cache_entry helper's signature said it returned the CacheEntry
    but it doesn't.

    https://bugzilla.gnome.org/show_bug.cgi?id=699424

M	daemon/gvfsbackendmtp.c

commit 341d17c7a78a7ce001d51f665763c33570ccec65
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:	2013-04-30

    Post release version bump

M	configure.ac