On 03/08/2012 03:29 PM, Jeff Darcy wrote:
On 03/06/2012 06:53 PM, Edward Shishkin wrote:
> What is not yet implemented:
> It would be nice to check tenant's encryption status
> (db_obj["crypt_username"]) in mount time to make sure that oplock
> and crypt translators are specified together. Otherwise crypt
> without oplock (as well as oplock without crypt) translator will
> work incorrectly. Any ideas on how to implement this gracefully
> are welcome.
When you say "incorrectly" do you mean it would throw errors? My guess is
the initial lock (via fgetxattr) would fail because the xattr isn't there, so
the rest of the I/O would fail also. Or do you mean something else?
The problems occur when crypt and oplock xlatorts are not installed
If crypt xlator will issue a request, and oplock is absent, then
nobody will respond, and we'll wait infinitely.
On the other hand, if crypt xlator is absent and oplock is present,
then also bad things will happen.
We can handle this situations on the low-level by issuing/checking
special magics by crypt/oplock xlator at create, open, etc. time).
However, it would mean additional complex code. So I wondered about
high-level means to make sure that crypt and oplock are installed
(or not installed) together.