os: FileStore::lfn_unlink always clears FDCache

Otherwise the FDCache will keep a file descriptor to a file that was
removed from the file system. This may create various type of errors
because the OSD checking the FDCache will assume the file that contains
information for an object exists although it does not. For instance in
the following:

      * rados put object file
      * rm file from the primary
      * repair the pg to which the object is mapped

if the FDCache is not cleared, all the repair will incorrectly pull a
copy from a replica and write it to the now unlinked file. Later on, it
will assume the file exists on the primary and only be partially correct
: the data can still be accessed via the file descriptor but any
operation using the path name will fail.

http://tracker.ceph.com/issues/8914 Fixes: #8914

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
os: FDCache::clear does not mean lookup returns false

If there still a shared_ptr holding the fd, it will be resurected by the
lookup, even after it is cleared from the lru.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>