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);
 
                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);
        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)
 
 #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 {