From: Raghavendra D Prabhu <[email protected]>

When xfs_dialloc is unable to allocate required number of inodes or there are no
AGs with free inodes, printk the error in ratelimited manner.

Signed-off-by: Raghavendra D Prabhu <[email protected]>
---
 fs/xfs/xfs_ialloc.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c
index e75a39d..034131b 100644
--- a/fs/xfs/xfs_ialloc.c
+++ b/fs/xfs/xfs_ialloc.c
@@ -990,8 +990,11 @@ xfs_dialloc(
                                goto out_error;
 
                        xfs_perag_put(pag);
-                       *inop = NULLFSINO;
-                       return 0;
+
+                       xfs_err_ratelimited(mp,
+                               "Unable to allocate inodes in AG %d: Required 
%d, Current %llu, Maximum %llu",
+                               agno, XFS_IALLOC_INODES(mp), 
mp->m_sb.sb_icount, mp->m_maxicount);
+                       goto out_spc;
                }
 
                if (ialloced) {
@@ -1016,11 +1019,19 @@ nextag:
                if (++agno == mp->m_sb.sb_agcount)
                        agno = 0;
                if (agno == start_agno) {
-                       *inop = NULLFSINO;
-                       return noroom ? ENOSPC : 0;
+                       if (noroom) {
+                               xfs_err_ratelimited(mp,
+                                       "Out of AGs with free inodes: Required 
%d, Current %llu, Maximum %llu",
+                                        XFS_IALLOC_INODES(mp), 
mp->m_sb.sb_icount, mp->m_maxicount);
+                               goto out_spc;
+                       }
+                       return 0;
                }
        }
 
+out_spc:
+       *inop = NULLFSINO;
+       return ENOSPC;
 out_alloc:
        *IO_agbp = NULL;
        return xfs_dialloc_ag(tp, agbp, parent, inop);
-- 
1.7.12

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to