From: Chris Wright Date: Thu, 5 Jan 2006 01:30:57 +0000 (-0800) Subject: Add ufs i_sem not released fix (to both 2.6.14 and 2.6.15), fwd from akpm X-Git-Tag: v2.6.14.6~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=02bed4a20e74f0969e6114cbdf9f46ef8758216c;p=thirdparty%2Fkernel%2Fstable-queue.git Add ufs i_sem not released fix (to both 2.6.14 and 2.6.15), fwd from akpm --- diff --git a/queue-2.6.14/series b/queue-2.6.14/series index 5021b259a87..37f87815763 100644 --- a/queue-2.6.14/series +++ b/queue-2.6.14/series @@ -2,3 +2,4 @@ drivers-net-sungem.c-gem_remove_one-mustn-t-be-__devexit.patch ieee80211_crypt_tkip-depends-on-net_radio.patch insanity-avoidance-in-proc.patch sysctl-don-t-overflow-the-user-supplied-buffer-with-0.patch +ufs-inode-i_sem-is-not-released-in-error-path.patch diff --git a/queue-2.6.14/ufs-inode-i_sem-is-not-released-in-error-path.patch b/queue-2.6.14/ufs-inode-i_sem-is-not-released-in-error-path.patch new file mode 100644 index 00000000000..9e0f7c68776 --- /dev/null +++ b/queue-2.6.14/ufs-inode-i_sem-is-not-released-in-error-path.patch @@ -0,0 +1,35 @@ +From stable-bounces@linux.kernel.org Tue Jan 3 18:03:11 2006 +Message-Id: <200601040159.k041xUT1004672@shell0.pdx.osdl.net> +To: johnpol@2ka.mipt.ru, stable@kernel.org, mm-commits@vger.kernel.org +From: akpm@osdl.org +Date: Tue, 03 Jan 2006 17:59:19 -0800 +Subject: UFS: inode->i_sem is not released in error path + +From: Evgeniy Polyakov + +Signed-off-by: Evgeniy Polyakov +Cc: +akpm: obviously correct, OK for -stable immediately. +Signed-off-by: Andrew Morton +Signed-off-by: Chris Wright +--- + + fs/ufs/super.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +Index: linux-2.6.14.5/fs/ufs/super.c +=================================================================== +--- linux-2.6.14.5.orig/fs/ufs/super.c ++++ linux-2.6.14.5/fs/ufs/super.c +@@ -1294,8 +1294,10 @@ static ssize_t ufs_quota_write(struct su + blk++; + } + out: +- if (len == towrite) ++ if (len == towrite) { ++ up(&inode->i_sem); + return err; ++ } + if (inode->i_size < off+len-towrite) + i_size_write(inode, off+len-towrite); + inode->i_version++; diff --git a/queue/series b/queue/series index 957e651946a..67c3aa18ac4 100644 --- a/queue/series +++ b/queue/series @@ -1 +1,2 @@ bridge-fix-faulty-check-in-br_stp_recalculate_bridge_id.patch +ufs-inode-i_sem-is-not-released-in-error-path.patch diff --git a/queue/ufs-inode-i_sem-is-not-released-in-error-path.patch b/queue/ufs-inode-i_sem-is-not-released-in-error-path.patch new file mode 100644 index 00000000000..3759ceff90d --- /dev/null +++ b/queue/ufs-inode-i_sem-is-not-released-in-error-path.patch @@ -0,0 +1,35 @@ +From stable-bounces@linux.kernel.org Tue Jan 3 18:03:11 2006 +Message-Id: <200601040159.k041xUT1004672@shell0.pdx.osdl.net> +To: johnpol@2ka.mipt.ru, stable@kernel.org, mm-commits@vger.kernel.org +From: akpm@osdl.org +Date: Tue, 03 Jan 2006 17:59:19 -0800 +Subject: UFS: inode->i_sem is not released in error path + +From: Evgeniy Polyakov + +Signed-off-by: Evgeniy Polyakov +Cc: +akpm: obviously correct, OK for -stable immediately. +Signed-off-by: Andrew Morton +Signed-off-by: Chris Wright +--- + + fs/ufs/super.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletion(-) + +Index: linux-2.6.15.y/fs/ufs/super.c +=================================================================== +--- linux-2.6.15.y.orig/fs/ufs/super.c ++++ linux-2.6.15.y/fs/ufs/super.c +@@ -1296,8 +1296,10 @@ static ssize_t ufs_quota_write(struct su + blk++; + } + out: +- if (len == towrite) ++ if (len == towrite) { ++ up(&inode->i_sem); + return err; ++ } + if (inode->i_size < off+len-towrite) + i_size_write(inode, off+len-towrite); + inode->i_version++;