#endif
 
 #ifdef CONFIG_IMA
-       /* protected by i_lock */
-       unsigned int            i_readcount; /* struct files open RO */
+       atomic_t                i_readcount; /* struct files open RO */
 #endif
        atomic_t                i_writecount;
 #ifdef CONFIG_SECURITY
 
 {
        struct ima_iint_cache *iint;
 
-       if (inode->i_readcount)
-               printk(KERN_INFO "%s: readcount: %u\n", __func__, inode->i_readcount);
+       if (atomic_read(&inode->i_readcount))
+               printk(KERN_INFO "%s: readcount: %u\n", __func__,
+                      atomic_read(&inode->i_readcount));
 
-       inode->i_readcount = 0;
+       atomic_set(&inode->i_readcount, 0);
 
        if (!IS_IMA(inode))
                return;
 
                goto out;
 
        if (mode & FMODE_WRITE) {
-               if (inode->i_readcount && IS_IMA(inode))
+               if (atomic_read(&inode->i_readcount) && IS_IMA(inode))
                        send_tomtou = true;
                goto out;
        }
 out:
        /* remember the vfs deals with i_writecount */
        if ((mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ)
-               inode->i_readcount++;
+               atomic_inc(&inode->i_readcount);
 
        spin_unlock(&inode->i_lock);
 
        assert_spin_locked(&inode->i_lock);
 
        if ((mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) {
-               if (unlikely(inode->i_readcount == 0)) {
+               if (unlikely(atomic_read(&inode->i_readcount) == 0)) {
                        if (!ima_limit_imbalance(file)) {
                                printk(KERN_INFO "%s: open/free imbalance (r:%u)\n",
-                                      __func__, inode->i_readcount);
+                                      __func__,
+                                      atomic_read(&inode->i_readcount));
                                dump_stack();
                        }
                        return;
                }
-               inode->i_readcount--;
+               atomic_dec(&inode->i_readcount);
        }
 }