linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marcin Slusarz <marcin.slusarz@gmail.com>
To: Laurent Riffard <laurent.riffard@free.fr>, Jan Kara <jack@suse.cz>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>,
	linux-next@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH] udf: fix default mode and dmode options handling
Date: Tue, 2 Dec 2008 00:22:31 +0100	[thread overview]
Message-ID: <20081201232227.GA7925@joi> (raw)
In-Reply-To: <49343AC2.3010808@free.fr>

On Mon, Dec 01, 2008 at 08:28:02PM +0100, Laurent Riffard wrote:
> >> With next-2008-11-28, I was unable to mount an UDF-formatted DVD-RW:
> > Can you check whether attached patch fixes it?
> Current kernel is next-20081128 + reiser4 patches + your patch: it seems to works well now.
> (...)
> Tested-by: Laurent Riffard <laurent.riffard@free.fr>

Thanks!

Jan, please apply this patch:

---
From: Marcin Slusarz <marcin.slusarz@gmail.com>
Subject: [PATCH] udf: fix default mode and dmode options handling

On x86 (and several other archs) mode_t is defined as "unsigned short"
and comparing unsigned shorts to negative ints is broken (because short
is promoted to int and then compared). Fix it.

Reported-and-tested-by: Laurent Riffard <laurent.riffard@free.fr>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
---
 fs/udf/inode.c  |    4 ++--
 fs/udf/super.c  |    8 ++++----
 fs/udf/udf_sb.h |    2 ++
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 6612a27..2d7e56a 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -1222,10 +1222,10 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
 	iinfo->i_lenExtents = inode->i_size;
 
 	if (fe->icbTag.fileType != ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_fmode != -1)
+			sbi->s_fmode != UDF_INVALID_MODE)
 		inode->i_mode = sbi->s_fmode;
 	else if (fe->icbTag.fileType == ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_dmode != -1)
+			sbi->s_dmode != UDF_INVALID_MODE)
 		inode->i_mode = sbi->s_dmode;
 	else
 		inode->i_mode = udf_convert_permissions(fe);
diff --git a/fs/udf/super.c b/fs/udf/super.c
index e5d121d..8deaa61 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -284,9 +284,9 @@ static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt)
 		seq_printf(seq, ",gid=%u", sbi->s_gid);
 	if (sbi->s_umask != 0)
 		seq_printf(seq, ",umask=%o", sbi->s_umask);
-	if (sbi->s_fmode != -1)
+	if (sbi->s_fmode != UDF_INVALID_MODE)
 		seq_printf(seq, ",mode=%o", sbi->s_fmode);
-	if (sbi->s_dmode != -1)
+	if (sbi->s_dmode != UDF_INVALID_MODE)
 		seq_printf(seq, ",dmode=%o", sbi->s_dmode);
 	if (UDF_QUERY_FLAG(sb, UDF_FLAG_SESSION_SET))
 		seq_printf(seq, ",session=%u", sbi->s_session);
@@ -1894,8 +1894,8 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
 	uopt.uid = -1;
 	uopt.gid = -1;
 	uopt.umask = 0;
-	uopt.fmode = -1;
-	uopt.dmode = -1;
+	uopt.fmode = UDF_INVALID_MODE;
+	uopt.dmode = UDF_INVALID_MODE;
 
 	sbi = kzalloc(sizeof(struct udf_sb_info), GFP_KERNEL);
 	if (!sbi)
diff --git a/fs/udf/udf_sb.h b/fs/udf/udf_sb.h
index 5d32c60..158221e 100644
--- a/fs/udf/udf_sb.h
+++ b/fs/udf/udf_sb.h
@@ -48,6 +48,8 @@
 #define UDF_SPARABLE_MAP15		0x1522U
 #define UDF_METADATA_MAP25		0x2511U
 
+#define UDF_INVALID_MODE		((mode_t)-1)
+
 #pragma pack(1) /* XXX(hch): Why?  This file just defines in-core structures */
 
 struct udf_meta_data {
-- 
1.5.6.4

  reply	other threads:[~2008-12-01 23:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-28 10:36 linux-next: Tree for November 28 Stephen Rothwell
2008-11-28 15:17 ` next-2008-11-28: bfin vs cpumask fixlet Alexey Dobriyan
2008-12-01  4:47   ` Rusty Russell
2008-11-28 17:55 ` linux-next: Tree for November 28 (misc/tc1100) Randy Dunlap
2008-11-28 21:35   ` drivers/x86 (Was: Re: linux-next: Tree for November 28 (misc/tc1100)) Stephen Rothwell
2008-11-28 21:50     ` Len Brown
     [not found]       ` <alpine.LFD.2.00.0811281702570.24773@localhost.localdomain>
2008-11-28 22:09         ` [RFC PATCH] x86: create drivers/x86/ from drivers/misc/ Len Brown
2008-11-28 22:35           ` Sam Ravnborg
2008-11-28 23:16             ` Len Brown
2008-11-29  0:16               ` Henrique de Moraes Holschuh
2008-12-01  4:35                 ` Len Brown
2008-11-29  1:00               ` Randy Dunlap
2008-11-29  7:23               ` Sam Ravnborg
2008-11-29  7:38               ` Sam Ravnborg
2008-12-01  5:00                 ` Len Brown
2008-12-01  5:54                   ` Sam Ravnborg
2008-12-01  6:02                 ` [RFC PATCH v2] create drivers/platform/x86/ " Len Brown
2008-12-01  6:03                   ` [PATCH 1/2] drivers/misc/Makefile, Kconfig: cleanup Len Brown
2008-12-01  7:41                     ` Sam Ravnborg
2008-12-01 19:23                       ` Len Brown
2008-12-01  6:05                   ` [PATCH 2/2] create drivers/platform/x86/ from drivers/misc/ Len Brown
2008-12-01  7:48                   ` [RFC PATCH v2] " Ingo Molnar
2008-12-01 19:12                     ` Len Brown
2008-11-28 23:20             ` [RFC PATCH] x86: create drivers/x86/ " Len Brown
2008-12-01  4:49               ` Randy Dunlap
2008-11-29  9:34     ` drivers/x86 (Was: Re: linux-next: Tree for November 28 (misc/tc1100)) Ingo Molnar
2008-12-01  4:29       ` Len Brown
2008-11-30 23:44 ` next-2008-11-28 : can't mount UDF DVD Laurent Riffard
2008-12-01  0:18   ` Marcin Slusarz
2008-12-01 19:28     ` Laurent Riffard
2008-12-01 23:22       ` Marcin Slusarz [this message]
2008-12-02 13:38         ` [PATCH] udf: fix default mode and dmode options handling Jan Kara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081201232227.GA7925@joi \
    --to=marcin.slusarz@gmail.com \
    --cc=jack@suse.cz \
    --cc=laurent.riffard@free.fr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=sfr@canb.auug.org.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).