内核关中断后硬盘中断被屏蔽如何处理

各位大神:
linux0.11内核中有三个锁,下面是锁i节点的内联函数
static inline void lock_inode(struct m_inode * inode)
{
    cli();
    while (inode->i_lock)
        sleep_on(&inode->i_wait);
    inode->i_lock=1;
    sti();
}

请教一下问题,如果系统之前有进程A发出了读取硬盘数据块请求,并且硬盘已经在工作了,进程A在睡眠等待中,假设此时进程B得到CPU执行到上面的代码,对一个i节点打算加锁,它关闭中断cli();后,还没有执行到sti();前,进程A之前发出的硬盘请求处理完成,硬盘就会向CPU发中断,而此时因为关了中断,不会被响应,那么进程A将不会被唤醒,而进程B继续执行,完成上锁后再打开中断,此时硬盘中断已经错过了,进程A没法唤醒了怎么办?
一直没想通,请大神指点。
 

CPU没有响应硬盘中断,但也不会清除中断标记,只是处于pending状态。等CPU重新打开中断后,还是会继续处理pending的中断。