From owner-freebsd-fs@FreeBSD.ORG Fri May 29 16:00:15 2009 Return-Path: Delivered-To: freebsd-fs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C0D81065693 for ; Fri, 29 May 2009 16:00:15 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 812E88FC27 for ; Fri, 29 May 2009 16:00:15 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n4TG0FSF025074 for ; Fri, 29 May 2009 16:00:15 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n4TG0F7d025072; Fri, 29 May 2009 16:00:15 GMT (envelope-from gnats) Date: Fri, 29 May 2009 16:00:15 GMT Message-Id: <200905291600.n4TG0F7d025072@freefall.freebsd.org> To: freebsd-fs@FreeBSD.org From: Aditya Sarawgi Cc: Subject: Re: kern/122047: [ext2fs] [patch] incorrect handling of UF_IMMUTABLE / UF_APPEND flag on EXT2FS (maybe others) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Aditya Sarawgi List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 May 2009 16:00:15 -0000 The following reply was made to PR kern/122047; it has been noted by GNATS. From: Aditya Sarawgi To: bug-followup@freebsd.org Cc: ighighi@freebsd.org, brde@optusnet.com.au, mckusick@chez.mckusick.com Subject: Re: kern/122047: [ext2fs] [patch] incorrect handling of UF_IMMUTABLE / UF_APPEND flag on EXT2FS (maybe others) Date: Fri, 29 May 2009 15:57:13 +0530 --2oS5YaxWCcQjTEyO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I have created a patch for this. Its a simple patch that maps EXT2_* flags to only SF_* flags and disallows setting of UF_* flags with an EOPNOTSUPP error. -- Aditya Sarawgi --2oS5YaxWCcQjTEyO Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="uf.patch" 86,87c86,87 < ip->i_flags |= (ei->i_flags & EXT2_APPEND_FL) ? APPEND : 0; < ip->i_flags |= (ei->i_flags & EXT2_IMMUTABLE_FL) ? IMMUTABLE : 0; --- > ip->i_flags |= (ei->i_flags & EXT2_APPEND_FL) ? SF_APPEND : 0; > ip->i_flags |= (ei->i_flags & EXT2_IMMUTABLE_FL) ? SF_IMMUTABLE : 0; 124,125c124,125 < ei->i_flags |= (ip->i_flags & APPEND) ? EXT2_APPEND_FL: 0; < ei->i_flags |= (ip->i_flags & IMMUTABLE) ? EXT2_IMMUTABLE_FL: 0; --- > ei->i_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND_FL: 0; > ei->i_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE_FL: 0; 250c250 < if ((VTOI(ap->a_vp)->i_flags & APPEND) && --- > if ((VTOI(ap->a_vp)->i_flags & SF_APPEND) && 318c318 < if ((accmode & VWRITE) && (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT))) --- > if ((accmode & VWRITE) && (ip->i_flags & (SF_IMMUTABLE | SF_SNAPSHOT))) 394a395,399 > /* > * Deny setting of UF_* flags > */ > if(vap->va_flags & UF_SETTABLE) > return (EOPNOTSUPP); 425c430 < if (vap->va_flags & (IMMUTABLE | APPEND)) --- > if (vap->va_flags & (SF_IMMUTABLE | SF_APPEND)) 428c433 < if (ip->i_flags & (IMMUTABLE | APPEND)) --- > if (ip->i_flags & (SF_IMMUTABLE | SF_APPEND)) 678,679c683,684 < if ((ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND)) || < (VTOI(dvp)->i_flags & APPEND)) { --- > if ((ip->i_flags & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) || > (VTOI(dvp)->i_flags & SF_APPEND)) { 722c727 < if (ip->i_flags & (IMMUTABLE | APPEND)) { --- > if (ip->i_flags & (SF_IMMUTABLE | SF_APPEND)) { 789,790c794,795 < if (tvp && ((VTOI(tvp)->i_flags & (NOUNLINK | IMMUTABLE | APPEND)) || < (VTOI(tdvp)->i_flags & APPEND))) { --- > if (tvp && ((VTOI(tvp)->i_flags & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) || > (VTOI(tdvp)->i_flags & SF_APPEND))) { 814,815c819,820 < if ((ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND)) < || (dp->i_flags & APPEND)) { --- > if ((ip->i_flags & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) > || (dp->i_flags & SF_APPEND)) { 1274,1275c1279,1280 < if ((dp->i_flags & APPEND) < || (ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND))) { --- > if ((dp->i_flags & SF_APPEND) > || (ip->i_flags & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND))) { --2oS5YaxWCcQjTEyO--