ep_unregister_pollwait(ep, epi);
 
        /* Remove the current item from the list of epoll hooks */
-       spin_lock(&file->f_ep_lock);
+       spin_lock(&file->f_lock);
        if (ep_is_linked(&epi->fllink))
                list_del_init(&epi->fllink);
-       spin_unlock(&file->f_ep_lock);
+       spin_unlock(&file->f_lock);
 
        rb_erase(&epi->rbn, &ep->rbr);
 
        struct epitem *epi;
 
        /*
-        * We don't want to get "file->f_ep_lock" because it is not
+        * We don't want to get "file->f_lock" because it is not
         * necessary. It is not necessary because we're in the "struct file"
         * cleanup path, and this means that noone is using this file anymore.
         * So, for example, epoll_ctl() cannot hit here sicne if we reach this
         * will correctly serialize the operation. We do need to acquire
         * "ep->mtx" after "epmutex" because ep_remove() requires it when called
         * from anywhere but ep_free().
+        *
+        * Besides, ep_remove() acquires the lock, so we can't hold it here.
         */
        mutex_lock(&epmutex);
 
                goto error_unregister;
 
        /* Add the current item to the list of active epoll hook for this file */
-       spin_lock(&tfile->f_ep_lock);
+       spin_lock(&tfile->f_lock);
        list_add_tail(&epi->fllink, &tfile->f_ep_links);
-       spin_unlock(&tfile->f_ep_lock);
+       spin_unlock(&tfile->f_lock);
 
        /*
         * Add the current item to the RB tree. All RB tree operations are
 
 #define f_dentry       f_path.dentry
 #define f_vfsmnt       f_path.mnt
        const struct file_operations    *f_op;
+       spinlock_t              f_lock;  /* f_ep_links */
        atomic_long_t           f_count;
        unsigned int            f_flags;
        fmode_t                 f_mode;
 #ifdef CONFIG_EPOLL
        /* Used by fs/eventpoll.c to link all the hooks to this file */
        struct list_head        f_ep_links;
-       spinlock_t              f_ep_lock;
 #endif /* #ifdef CONFIG_EPOLL */
        struct address_space    *f_mapping;
 #ifdef CONFIG_DEBUG_WRITECOUNT