mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-26 03:17:48 +00:00
xfs: quota: check result of register_shrinker()
xfs_qm_init_quotainfo() does not check result of register_shrinker() which was tagged as __must_check recently, reported by sparse. Signed-off-by: Aliaksei Karaliou <akaraliou.dev@gmail.com> [darrick: move xfs_qm_destroy_quotainos nearer xfs_qm_init_quotainos] Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
2196881566
commit
3a3882ff26
@ -48,7 +48,7 @@
|
||||
STATIC int xfs_qm_init_quotainos(xfs_mount_t *);
|
||||
STATIC int xfs_qm_init_quotainfo(xfs_mount_t *);
|
||||
|
||||
|
||||
STATIC void xfs_qm_destroy_quotainos(xfs_quotainfo_t *qi);
|
||||
STATIC void xfs_qm_dqfree_one(struct xfs_dquot *dqp);
|
||||
/*
|
||||
* We use the batch lookup interface to iterate over the dquots as it
|
||||
@ -695,9 +695,17 @@ xfs_qm_init_quotainfo(
|
||||
qinf->qi_shrinker.scan_objects = xfs_qm_shrink_scan;
|
||||
qinf->qi_shrinker.seeks = DEFAULT_SEEKS;
|
||||
qinf->qi_shrinker.flags = SHRINKER_NUMA_AWARE;
|
||||
register_shrinker(&qinf->qi_shrinker);
|
||||
|
||||
error = register_shrinker(&qinf->qi_shrinker);
|
||||
if (error)
|
||||
goto out_free_inos;
|
||||
|
||||
return 0;
|
||||
|
||||
out_free_inos:
|
||||
mutex_destroy(&qinf->qi_quotaofflock);
|
||||
mutex_destroy(&qinf->qi_tree_lock);
|
||||
xfs_qm_destroy_quotainos(qinf);
|
||||
out_free_lru:
|
||||
list_lru_destroy(&qinf->qi_lru);
|
||||
out_free_qinf:
|
||||
@ -706,7 +714,6 @@ out_free_qinf:
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Gets called when unmounting a filesystem or when all quotas get
|
||||
* turned off.
|
||||
@ -723,19 +730,7 @@ xfs_qm_destroy_quotainfo(
|
||||
|
||||
unregister_shrinker(&qi->qi_shrinker);
|
||||
list_lru_destroy(&qi->qi_lru);
|
||||
|
||||
if (qi->qi_uquotaip) {
|
||||
IRELE(qi->qi_uquotaip);
|
||||
qi->qi_uquotaip = NULL; /* paranoia */
|
||||
}
|
||||
if (qi->qi_gquotaip) {
|
||||
IRELE(qi->qi_gquotaip);
|
||||
qi->qi_gquotaip = NULL;
|
||||
}
|
||||
if (qi->qi_pquotaip) {
|
||||
IRELE(qi->qi_pquotaip);
|
||||
qi->qi_pquotaip = NULL;
|
||||
}
|
||||
xfs_qm_destroy_quotainos(qi);
|
||||
mutex_destroy(&qi->qi_tree_lock);
|
||||
mutex_destroy(&qi->qi_quotaofflock);
|
||||
kmem_free(qi);
|
||||
@ -1600,6 +1595,24 @@ error_rele:
|
||||
return error;
|
||||
}
|
||||
|
||||
STATIC void
|
||||
xfs_qm_destroy_quotainos(
|
||||
xfs_quotainfo_t *qi)
|
||||
{
|
||||
if (qi->qi_uquotaip) {
|
||||
IRELE(qi->qi_uquotaip);
|
||||
qi->qi_uquotaip = NULL; /* paranoia */
|
||||
}
|
||||
if (qi->qi_gquotaip) {
|
||||
IRELE(qi->qi_gquotaip);
|
||||
qi->qi_gquotaip = NULL;
|
||||
}
|
||||
if (qi->qi_pquotaip) {
|
||||
IRELE(qi->qi_pquotaip);
|
||||
qi->qi_pquotaip = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC void
|
||||
xfs_qm_dqfree_one(
|
||||
struct xfs_dquot *dqp)
|
||||
|
Loading…
Reference in New Issue
Block a user