/// <summary>
        /// Release a filelock
        /// </summary>
        /// <param name="fileHandle"></param>
        /// <param name="item"></param>
        public static void FilelockRelease(FileHandler fileHandle, IFuserFilesystemItem item)
        {
            try {
                if (fileHandle == null || item == null)
                {
                    return;
                }

                FileLockManager lockMgr = item.Filelock;
                FileLockItem[]  locks   = null;


                lock (fileHandle) {
                    locks = fileHandle.GetFileLockList();
                }

                if (locks != null)
                {
                    IFuserFilesystemDirectory dirItem = null;
                    if (item is IFuserFilesystemDirectory)
                    {
                        dirItem = (IFuserFilesystemDirectory)item;
                    }


                    lock (lockMgr) {
                        foreach (FileLockItem lItem in locks)
                        {
                            lockMgr.UnregisterLock(lItem);
                            if (dirItem != null)
                            {
                                ReleaseBlockDeletePermission(dirItem, lItem);
                            }
                        }
                    }
                }
            } catch {
                return;
            }
        }