aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/dquot.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/dquot.c b/fs/dquot.c
index 686ab63a7c6c..b2592abaa713 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -895,9 +895,6 @@ out_lock:
895 895
896#ifdef CONFIG_QUOTA_NETLINK_INTERFACE 896#ifdef CONFIG_QUOTA_NETLINK_INTERFACE
897 897
898/* Size of quota netlink message - actually an upperbound for buffer size */
899#define QUOTA_NL_MSG_SIZE 32
900
901/* Netlink family structure for quota */ 898/* Netlink family structure for quota */
902static struct genl_family quota_genl_family = { 899static struct genl_family quota_genl_family = {
903 .id = GENL_ID_GENERATE, 900 .id = GENL_ID_GENERATE,
@@ -914,11 +911,13 @@ static void send_warning(const struct dquot *dquot, const char warntype)
914 struct sk_buff *skb; 911 struct sk_buff *skb;
915 void *msg_head; 912 void *msg_head;
916 int ret; 913 int ret;
914 int msg_size = 4 * nla_total_size(sizeof(u32)) +
915 2 * nla_total_size(sizeof(u64));
917 916
918 /* We have to allocate using GFP_NOFS as we are called from a 917 /* We have to allocate using GFP_NOFS as we are called from a
919 * filesystem performing write and thus further recursion into 918 * filesystem performing write and thus further recursion into
920 * the fs to free some data could cause deadlocks. */ 919 * the fs to free some data could cause deadlocks. */
921 skb = genlmsg_new(QUOTA_NL_MSG_SIZE, GFP_NOFS); 920 skb = genlmsg_new(msg_size, GFP_NOFS);
922 if (!skb) { 921 if (!skb) {
923 printk(KERN_ERR 922 printk(KERN_ERR
924 "VFS: Not enough memory to send quota warning.\n"); 923 "VFS: Not enough memory to send quota warning.\n");
@@ -959,7 +958,7 @@ static void send_warning(const struct dquot *dquot, const char warntype)
959 "VFS: Failed to send notification message: %d\n", ret); 958 "VFS: Failed to send notification message: %d\n", ret);
960 return; 959 return;
961attr_err_out: 960attr_err_out:
962 printk(KERN_ERR "VFS: Failed to compose quota message: %d\n", ret); 961 printk(KERN_ERR "VFS: Not enough space to compose quota message!\n");
963err_out: 962err_out:
964 kfree_skb(skb); 963 kfree_skb(skb);
965} 964}