HDFS-15607 added a feature that when dfs.namenode.snapshot.trashroot.enabled=true, allowSnapshot will automatically create a .Trash directory immediately after allowSnapshot operation so files deleted will be moved into the trash root inside the snapshottable directory.
HDFS-15539 prevents admins from disallowing snapshot if the trash root inside is not empty
1. When dfs.namenode.snapshot.trashroot.enabled=true, currently if the directory (to be allowed snapshot on) is an EZ root, it throws FileAlreadyExistsException because the trash root already exists (encryption zone has already created an internal trash root).
2. Similarly, at the moment if we disallow snapshot on an EZ root, it may complain that the trash root is not empty (or delete it if empty, which is not desired since EZ will still need it).
1. Let allowSnapshot succeed by not throwing FileAlreadyExistsException, but informs the admin that the trash already exists.
2. Ignore checkTrashRootAndRemoveIfEmpty() check if path is EZ root.