On Tue, Jan 28, 2014 at 01:17:20PM +0000, Sachin Prabhu wrote:
> On Mon, 2014-01-27 at 23:48 +0300, Dan Carpenter wrote:
> > Hello Sachin Prabhu,
> >
> > The patch 0f8dce1cb745: "cifs: Re-order M-F Symlink code" from Nov
> > 25, 2013, leads to the following static checker warning:
> >
> > fs/cifs/link.c:188 couldbe_mf_symlink()
> > error: should you be using something like S_ISREG() here?
> >
> > fs/cifs/link.c
> > 185 bool
> > 186 couldbe_mf_symlink(const struct cifs_fattr *fattr)
> > 187 {
> > 188 if (!(fattr->cf_mode & S_IFREG))
> > ^^^^^^
> > Should this be:
> >
> > if (!S_ISREG(fattr->cf_mode))
> >
> > 189 /* it's not a symlink */
> > 190 return false;
> > 191
> > 192 if (fattr->cf_eof != CIFS_MF_SYMLINK_FILE_SIZE)
> > 193 /* it's not a symlink */
> > 194 return false;
> > 195
> > 196 return true;
> > 197 }
> >
> > If this a real bug then please give the credit to Neil Brown because he
> > suggested I add this to Smatch (not pushed yet).
> >
> > Reported-by: NeilBrown <[email protected]>
> >
> > regards,
> > dan carpenter
>
> Hello Dan,
>
> There seems to be no difference in operation between the original line
> and the proposed line. The newer line just seems to be the preferred way
> to test for regular files. Is there a bug I am missing here?
I mean, there is a functional difference in the obvious sense.
#define S_IFSOCK 0140000
#define S_IFLNK 0120000
#define S_IFREG 0100000
#define S_IFBLK 0060000
#define S_IFDIR 0040000
#define S_IFCHR 0020000
#define S_IFIFO 0010000
#define S_ISUID 0004000
#define S_ISGID 0002000
#define S_ISVTX 0001000
0100000 is set for S_IFREG, S_IFLNK and S_IFSOCK. But I don't know if
this makes a difference for cifs?
regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html