aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/quota/netlink.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/fs/quota/netlink.c b/fs/quota/netlink.c
index 16e8abb7709b..aa22fe03b76c 100644
--- a/fs/quota/netlink.c
+++ b/fs/quota/netlink.c
@@ -11,13 +11,23 @@
11 11
12/* Netlink family structure for quota */ 12/* Netlink family structure for quota */
13static struct genl_family quota_genl_family = { 13static struct genl_family quota_genl_family = {
14 .id = GENL_ID_GENERATE, 14 /*
15 * Needed due to multicast group ID abuse - old code assumed
16 * the family ID was also a valid multicast group ID (which
17 * isn't true) and userspace might thus rely on it. Assign a
18 * static ID for this group to make dealing with that easier.
19 */
20 .id = GENL_ID_VFS_DQUOT,
15 .hdrsize = 0, 21 .hdrsize = 0,
16 .name = "VFS_DQUOT", 22 .name = "VFS_DQUOT",
17 .version = 1, 23 .version = 1,
18 .maxattr = QUOTA_NL_A_MAX, 24 .maxattr = QUOTA_NL_A_MAX,
19}; 25};
20 26
27static struct genl_multicast_group quota_mcgrp = {
28 .name = "events",
29};
30
21/** 31/**
22 * quota_send_warning - Send warning to userspace about exceeded quota 32 * quota_send_warning - Send warning to userspace about exceeded quota
23 * @type: The quota type: USRQQUOTA, GRPQUOTA,... 33 * @type: The quota type: USRQQUOTA, GRPQUOTA,...
@@ -78,7 +88,7 @@ void quota_send_warning(struct kqid qid, dev_t dev,
78 goto attr_err_out; 88 goto attr_err_out;
79 genlmsg_end(skb, msg_head); 89 genlmsg_end(skb, msg_head);
80 90
81 genlmsg_multicast(skb, 0, quota_genl_family.id, GFP_NOFS); 91 genlmsg_multicast(skb, 0, quota_mcgrp.id, GFP_NOFS);
82 return; 92 return;
83attr_err_out: 93attr_err_out:
84 printk(KERN_ERR "VFS: Not enough space to compose quota message!\n"); 94 printk(KERN_ERR "VFS: Not enough space to compose quota message!\n");
@@ -92,6 +102,9 @@ static int __init quota_init(void)
92 if (genl_register_family(&quota_genl_family) != 0) 102 if (genl_register_family(&quota_genl_family) != 0)
93 printk(KERN_ERR 103 printk(KERN_ERR
94 "VFS: Failed to create quota netlink interface.\n"); 104 "VFS: Failed to create quota netlink interface.\n");
105 if (genl_register_mc_group(&quota_genl_family, &quota_mcgrp))
106 printk(KERN_ERR
107 "VFS: Failed to register quota mcast group.\n");
95 return 0; 108 return 0;
96}; 109};
97 110