Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/ufs/lfs Merge -r1.46 of ufs_extattr.c: Fix uninitialized...



details:   https://anonhg.NetBSD.org/src/rev/7207101692f6
branches:  trunk
changeset: 346013:7207101692f6
user:      dholland <dholland%NetBSD.org@localhost>
date:      Mon Jun 20 01:50:13 2016 +0000

description:
Merge -r1.46 of ufs_extattr.c: Fix uninitialized mutex usage

diffstat:

 sys/ufs/lfs/ulfs_extattr.c |  38 ++++++++++++++++++++------------------
 1 files changed, 20 insertions(+), 18 deletions(-)

diffs (116 lines):

diff -r 2664b8db1b9f -r 7207101692f6 sys/ufs/lfs/ulfs_extattr.c
--- a/sys/ufs/lfs/ulfs_extattr.c        Mon Jun 20 01:47:58 2016 +0000
+++ b/sys/ufs/lfs/ulfs_extattr.c        Mon Jun 20 01:50:13 2016 +0000
@@ -1,5 +1,5 @@
-/*     $NetBSD: ulfs_extattr.c,v 1.11 2016/06/20 01:47:58 dholland Exp $       */
-/*  from NetBSD: ufs_extattr.c,v 1.45 2014/11/15 05:03:55 manu Exp  */
+/*     $NetBSD: ulfs_extattr.c,v 1.12 2016/06/20 01:50:13 dholland Exp $       */
+/*  from NetBSD: ufs_extattr.c,v 1.46 2014/11/19 16:26:47 manu Exp  */
 
 /*-
  * Copyright (c) 1999-2002 Robert N. M. Watson
@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ulfs_extattr.c,v 1.11 2016/06/20 01:47:58 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ulfs_extattr.c,v 1.12 2016/06/20 01:50:13 dholland Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_lfs.h"
@@ -1103,6 +1103,9 @@
        struct ulfsmount *ump = VFSTOULFS(mp);
        int error;
 
+       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
+               return (EOPNOTSUPP);
+
        ulfs_extattr_uepm_lock(ump);
 
        error = ulfs_extattr_get(ap->a_vp, ap->a_attrnamespace, ap->a_name,
@@ -1129,9 +1132,6 @@
        size_t len, old_len;
        int error = 0;
 
-       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
-               return (EOPNOTSUPP);
-
        if (strlen(name) == 0)
                return (EINVAL);
 
@@ -1221,6 +1221,9 @@
        struct ulfsmount *ump = VFSTOULFS(mp);
        int error;
 
+       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
+               return (EOPNOTSUPP);
+
        ulfs_extattr_uepm_lock(ump);
 
        error = ulfs_extattr_list(ap->a_vp, ap->a_attrnamespace,
@@ -1247,9 +1250,6 @@
        size_t listsize = 0;
        int error = 0;
 
-       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
-               return (EOPNOTSUPP);
-
        /*
         * XXX: We can move this inside the loop and iterate on individual
         *      attributes.
@@ -1348,6 +1348,9 @@
        struct ulfsmount *ump = VFSTOULFS(mp); 
        int error;
 
+       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
+               return (EOPNOTSUPP);
+
        ulfs_extattr_uepm_lock(ump);
 
        error = ulfs_extattr_rm(ap->a_vp, ap->a_attrnamespace, ap->a_name,
@@ -1377,6 +1380,9 @@
        struct ulfsmount *ump = VFSTOULFS(mp); 
        int error;
 
+       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
+               return (EOPNOTSUPP);
+
        ulfs_extattr_uepm_lock(ump);
 
        /*
@@ -1415,8 +1421,7 @@
 
        if (vp->v_mount->mnt_flag & MNT_RDONLY)
                return (EROFS);
-       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
-               return (EOPNOTSUPP);
+
        if (!ulfs_extattr_valid_attrname(attrnamespace, name))
                return (EINVAL);
 
@@ -1535,8 +1540,7 @@
 
        if (vp->v_mount->mnt_flag & MNT_RDONLY)  
                return (EROFS);
-       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
-               return (EOPNOTSUPP);
+
        if (!ulfs_extattr_valid_attrname(attrnamespace, name))
                return (EINVAL);
 
@@ -1609,12 +1613,10 @@
        if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_INITIALIZED))
                return;
 
-       ulfs_extattr_uepm_lock(ump);
+       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED))
+               return;
 
-       if (!(ump->um_extattr.uepm_flags & ULFS_EXTATTR_UEPM_STARTED)) {
-               ulfs_extattr_uepm_unlock(ump);
-               return;
-       }
+       ulfs_extattr_uepm_lock(ump);
 
        LIST_FOREACH(uele, &ump->um_extattr.uepm_list, uele_entries)
                ulfs_extattr_rm(vp, uele->uele_attrnamespace,



Home | Main Index | Thread Index | Old Index