.. | .. |
---|
457 | 457 | void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry) |
---|
458 | 458 | { |
---|
459 | 459 | struct qstr filename = QSTR_INIT(entry->name, entry->len); |
---|
460 | | - DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); |
---|
| 460 | + DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); |
---|
461 | 461 | struct dentry *dentry; |
---|
462 | 462 | struct dentry *alias; |
---|
463 | 463 | struct inode *dir = d_inode(parent); |
---|
.. | .. |
---|
1520 | 1520 | struct file *file, unsigned open_flags, |
---|
1521 | 1521 | umode_t mode) |
---|
1522 | 1522 | { |
---|
1523 | | - DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); |
---|
| 1523 | + DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); |
---|
1524 | 1524 | struct nfs_open_context *ctx; |
---|
1525 | 1525 | struct dentry *res; |
---|
1526 | 1526 | struct iattr attr = { .ia_valid = ATTR_OPEN }; |
---|
.. | .. |
---|
1858 | 1858 | |
---|
1859 | 1859 | trace_nfs_rmdir_enter(dir, dentry); |
---|
1860 | 1860 | if (d_really_is_positive(dentry)) { |
---|
| 1861 | +#ifdef CONFIG_PREEMPT_RT_BASE |
---|
| 1862 | + down(&NFS_I(d_inode(dentry))->rmdir_sem); |
---|
| 1863 | +#else |
---|
1861 | 1864 | down_write(&NFS_I(d_inode(dentry))->rmdir_sem); |
---|
| 1865 | +#endif |
---|
1862 | 1866 | error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); |
---|
1863 | 1867 | /* Ensure the VFS deletes this inode */ |
---|
1864 | 1868 | switch (error) { |
---|
.. | .. |
---|
1868 | 1872 | case -ENOENT: |
---|
1869 | 1873 | nfs_dentry_handle_enoent(dentry); |
---|
1870 | 1874 | } |
---|
| 1875 | +#ifdef CONFIG_PREEMPT_RT_BASE |
---|
| 1876 | + up(&NFS_I(d_inode(dentry))->rmdir_sem); |
---|
| 1877 | +#else |
---|
1871 | 1878 | up_write(&NFS_I(d_inode(dentry))->rmdir_sem); |
---|
| 1879 | +#endif |
---|
1872 | 1880 | } else |
---|
1873 | 1881 | error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); |
---|
1874 | 1882 | trace_nfs_rmdir_exit(dir, dentry, error); |
---|