diff options
Diffstat (limited to 'fs/xfs/xfs_qmops.c')
-rw-r--r-- | fs/xfs/xfs_qmops.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/fs/xfs/xfs_qmops.c b/fs/xfs/xfs_qmops.c index c266a0184b42..2ec1d8a27352 100644 --- a/fs/xfs/xfs_qmops.c +++ b/fs/xfs/xfs_qmops.c | |||
@@ -135,19 +135,13 @@ int | |||
135 | xfs_qmops_get(struct xfs_mount *mp, struct xfs_mount_args *args) | 135 | xfs_qmops_get(struct xfs_mount *mp, struct xfs_mount_args *args) |
136 | { | 136 | { |
137 | if (args->flags & (XFSMNT_UQUOTA | XFSMNT_PQUOTA | XFSMNT_GQUOTA)) { | 137 | if (args->flags & (XFSMNT_UQUOTA | XFSMNT_PQUOTA | XFSMNT_GQUOTA)) { |
138 | struct xfs_qmops *ops; | 138 | #ifdef CONFIG_XFS_QUOTA |
139 | 139 | mp->m_qm_ops = &xfs_qmcore_xfs; | |
140 | ops = symbol_get(xfs_qmcore_xfs); | 140 | #else |
141 | if (!ops) { | 141 | cmn_err(CE_WARN, |
142 | request_module("xfs_quota"); | 142 | "XFS: qouta support not available in this kernel."); |
143 | ops = symbol_get(xfs_qmcore_xfs); | 143 | return EINVAL; |
144 | } | 144 | #endif |
145 | |||
146 | if (!ops) { | ||
147 | cmn_err(CE_WARN, "XFS: no quota support available."); | ||
148 | return EINVAL; | ||
149 | } | ||
150 | mp->m_qm_ops = ops; | ||
151 | } else { | 145 | } else { |
152 | mp->m_qm_ops = &xfs_qmcore_stub; | 146 | mp->m_qm_ops = &xfs_qmcore_stub; |
153 | } | 147 | } |
@@ -158,6 +152,4 @@ xfs_qmops_get(struct xfs_mount *mp, struct xfs_mount_args *args) | |||
158 | void | 152 | void |
159 | xfs_qmops_put(struct xfs_mount *mp) | 153 | xfs_qmops_put(struct xfs_mount *mp) |
160 | { | 154 | { |
161 | if (mp->m_qm_ops != &xfs_qmcore_stub) | ||
162 | symbol_put(xfs_qmcore_xfs); | ||
163 | } | 155 | } |