Both vc-dir-mode and dired-mode are supported in vc-deduce-fileset, but only vc-dir-mode is supported in vc-ensure-vc-buffer. This patch prepares a VC-controlled file buffer from Dired as well. Error-checking is moved outside of the last branch of cond, because in addition to dired-mode, it's also needed for vc-dir-mode to avoid the failure with a backtrace when a single-file operation is executed in vc-dir-mode on a directory. Also I noticed that the check ‘(unless backend (error "Directory not under VC"))’ is not needed anymore because now vc-responsible-backend raises the same error. There are more such useless checks in vc.el that could be removed as well.