]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
smb: client: use GFP_KERNEL for registry allocation
authorFredric Cover <fredric.cover.lkernel@gmail.com>
Wed, 22 Jul 2026 21:18:44 +0000 (14:18 -0700)
committerSteve French <stfrench@microsoft.com>
Sun, 26 Jul 2026 22:40:20 +0000 (17:40 -0500)
Currently, cifs_get_swn_reg() allocates new registry entries using
GFP_ATOMIC. Since we lock a mutex here, this is clearly not an atomic
context. Use GFP_KERNEL instead.

Also, fix a minor grammatical error in the comment above the function.

Signed-off-by: Fredric Cover <fredric.cover.lkernel@gmail.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifs_swn.c

index 9951817d0d7ffd711f600ce4be4b001ed9b8b566..fe10719e627e54260c341fd9f90ce67105190a74 100644 (file)
@@ -425,7 +425,7 @@ static struct cifs_swn_reg *cifs_find_swn_reg(struct cifs_tcon *tcon)
 
 /*
  * Get a registration for the tcon's server and share name, allocating a new one if it does not
- * exists
+ * exist.
  */
 static struct cifs_swn_reg *cifs_get_swn_reg(struct cifs_tcon *tcon)
 {
@@ -443,7 +443,7 @@ static struct cifs_swn_reg *cifs_get_swn_reg(struct cifs_tcon *tcon)
                goto unlock;
        }
 
-       reg = kmalloc_obj(struct cifs_swn_reg, GFP_ATOMIC);
+       reg = kmalloc_obj(struct cifs_swn_reg, GFP_KERNEL);
        if (reg == NULL) {
                ret = -ENOMEM;
                goto fail_unlock;
@@ -451,7 +451,7 @@ static struct cifs_swn_reg *cifs_get_swn_reg(struct cifs_tcon *tcon)
 
        kref_init(&reg->ref_count);
 
-       reg->id = idr_alloc(&cifs_swnreg_idr, reg, 1, 0, GFP_ATOMIC);
+       reg->id = idr_alloc(&cifs_swnreg_idr, reg, 1, 0, GFP_KERNEL);
        if (reg->id < 0) {
                cifs_dbg(FYI, "%s: failed to allocate registration id\n", __func__);
                ret = reg->id;