title: close(fd) may be async function? how to trigger it?
body: <p>What conditions can call <code>schedule_delayed_work</code>?</p>
  <p>According to the code <a href="https://elixir.bootlin.com/linux/v4.18/source/fs/file_table.c#L263" rel="nofollow noreferrer">linux_kernel_close_code</a>(close-&gt;sys_close-&gt;filp_close-&gt;fput), It needs <code>in_interrupt()</code> return <code>TRUE</code>. But how to make <code>in_interrupt()</code> return <code>TRUE</code>? What should I do?</p>
  <p>the code:</p>
  <pre><code>void fput(struct file *file)
  {
      if (atomic_long_dec_and_test(&amp;file-&gt;f_count)) {
          struct task_struct *task = current;
  
          if (likely(!in_interrupt() &amp;&amp; !(task-&gt;flags &amp; PF_KTHREAD))) {
              init_task_work(&amp;file-&gt;f_u.fu_rcuhead, ____fput);
              if (!task_work_add(task, &amp;file-&gt;f_u.fu_rcuhead, true))
                  return;
              /*
               * After this task has run exit_task_work(),
               * task_work_add() will fail.  Fall through to delayed
               * fput to avoid leaking *file.
               */
          }
  
          if (llist_add(&amp;file-&gt;f_u.fu_llist, &amp;delayed_fput_list))
              schedule_delayed_work(&amp;delayed_fput_work, 1);
      }
  }
  </code></pre>
  <p>what condition can trigger <code>schedule_delayed_work</code>? I want to recur it by myself.</p>