<table><tr><td style="">bruns created this revision.<br />bruns added a reviewer: Frameworks.<br />Herald added a project: Frameworks.<br />Herald added a subscriber: kde-frameworks-devel.<br />bruns requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D28780">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>In case the fstab is deleted (caused by editing it), the watch will be<br />
removed. The code already partially dealed with this, i.e. it tried to<br />
readd the watch, but did not check if the operation succeeded and dropped<br />
any further changes if not.</p>

<p>Keep a watch on the containing folder and readd the fstab on change<br />
events. Unfortunately QFilesystemWatcher does not allow fine granular<br />
change events, though as /etc/ is likely mostly silent this should not<br />
matter much.</p>

<p>The bug becomes apparent when e.g. editing the fstab with VIM, which<br />
has a quite broken implementation of creating temporary/backup files<br />
during save: it moves away the original file and creates the new file<br />
directly under the original name, instead of using a atomic rename.</p></div></div><br /><div><strong>TEST PLAN</strong><div><ol class="remarkup-list">
<li class="remarkup-list-item">solid-hardware listen</li>
<li class="remarkup-list-item">open fstab with vi, save a few times</li>
</ol>

<p>Without the change, solid will loose the watch sooner or later.</p>

<p>Depends on <a href="https://phabricator.kde.org/D28779" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D28779</a></p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R245 Solid</div></div></div><br /><div><strong>BRANCH</strong><div><div>submit</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D28780">https://phabricator.kde.org/D28780</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>src/solid/devices/backends/fstab/fstabwatcher.cpp<br />
src/solid/devices/backends/fstab/fstabwatcher.h</div></div></div><br /><div><strong>To: </strong>bruns, Frameworks<br /><strong>Cc: </strong>kde-frameworks-devel, LeGast00n, cblack, michaelh, ngraham, bruns<br /></div>