if (be64_to_cpu(qd->qd_qb.qb_limit) && (s64)be64_to_cpu(qd->qd_qb.qb_limit) < value) {
                        print_message(qd, "exceeded");
-                       quota_send_warning(test_bit(QDF_USER, &qd->qd_flags) ?
-                                          USRQUOTA : GRPQUOTA, qd->qd_id,
+                       quota_send_warning(make_kqid(&init_user_ns,
+                                                    test_bit(QDF_USER, &qd->qd_flags) ?
+                                                    USRQUOTA : GRPQUOTA,
+                                                    qd->qd_id),
                                           sdp->sd_vfs->s_dev, QUOTA_NL_BHARDWARN);
 
                        error = -EDQUOT;
                           time_after_eq(jiffies, qd->qd_last_warn +
                                         gfs2_tune_get(sdp,
                                                gt_quota_warn_period) * HZ)) {
-                       quota_send_warning(test_bit(QDF_USER, &qd->qd_flags) ?
-                                          USRQUOTA : GRPQUOTA, qd->qd_id,
+                       quota_send_warning(make_kqid(&init_user_ns,
+                                                    test_bit(QDF_USER, &qd->qd_flags) ?
+                                                    USRQUOTA : GRPQUOTA,
+                                                    qd->qd_id),
                                           sdp->sd_vfs->s_dev, QUOTA_NL_BSOFTWARN);
                        error = print_message(qd, "warning");
                        qd->qd_last_warn = jiffies;
 
 #ifdef CONFIG_PRINT_QUOTA_WARNING
                print_warning(&warn[i]);
 #endif
-               quota_send_warning(warn[i].w_dq_type, warn[i].w_dq_id,
+               quota_send_warning(make_kqid(&init_user_ns, warn[i].w_dq_type, warn[i].w_dq_id),
                                   warn[i].w_sb->s_dev, warn[i].w_type);
        }
 }
 
  *
  */
 
-void quota_send_warning(short type, unsigned int id, dev_t dev,
+void quota_send_warning(struct kqid qid, dev_t dev,
                        const char warntype)
 {
        static atomic_t seq;
                  "VFS: Cannot store netlink header in quota warning.\n");
                goto err_out;
        }
-       ret = nla_put_u32(skb, QUOTA_NL_A_QTYPE, type);
+       ret = nla_put_u32(skb, QUOTA_NL_A_QTYPE, qid.type);
        if (ret)
                goto attr_err_out;
-       ret = nla_put_u64(skb, QUOTA_NL_A_EXCESS_ID, id);
+       ret = nla_put_u64(skb, QUOTA_NL_A_EXCESS_ID,
+                         from_kqid_munged(&init_user_ns, qid));
        if (ret)
                goto attr_err_out;
        ret = nla_put_u32(skb, QUOTA_NL_A_WARNING, warntype);
        ret = nla_put_u32(skb, QUOTA_NL_A_DEV_MINOR, MINOR(dev));
        if (ret)
                goto attr_err_out;
-       ret = nla_put_u64(skb, QUOTA_NL_A_CAUSED_ID, current_uid());
+       ret = nla_put_u64(skb, QUOTA_NL_A_CAUSED_ID,
+                         from_kuid_munged(&init_user_ns, current_uid()));
        if (ret)
                goto attr_err_out;
        genlmsg_end(skb, msg_head);
 
        /* no warnings for project quotas - we just return ENOSPC later */
        if (dqp->dq_flags & XFS_DQ_PROJ)
                return;
-       quota_send_warning((dqp->dq_flags & XFS_DQ_USER) ? USRQUOTA : GRPQUOTA,
-                          be32_to_cpu(dqp->q_core.d_id), mp->m_super->s_dev,
-                          type);
+       quota_send_warning(make_kqid(&init_user_ns,
+                                    (dqp->dq_flags & XFS_DQ_USER) ?
+                                    USRQUOTA : GRPQUOTA,
+                                    be32_to_cpu(dqp->q_core.d_id)),
+                          mp->m_super->s_dev, type);
 }
 
 /*
 
 }
 
 #ifdef CONFIG_QUOTA_NETLINK_INTERFACE
-extern void quota_send_warning(short type, unsigned int id, dev_t dev,
+extern void quota_send_warning(struct kqid qid, dev_t dev,
                               const char warntype);
 #else
-static inline void quota_send_warning(short type, unsigned int id, dev_t dev,
+static inline void quota_send_warning(struct kqid qid, dev_t dev,
                                      const char warntype)
 {
        return;
 
        depends on IMA = n
        depends on EVM = n
        depends on QUOTA = n
-       depends on QUOTA_NETLINK_INTERFACE = n
 
        # Networking
        depends on NET_9P = n