On Sun, Feb 03 2013, majianpeng wrote: > Hi all, > When I wanted to do discard operations,but i set the openflag was O_RDONLY,it returned a EBADF rather than EACCES or EPERM. > I searched the code and found: > >case BLKDISCARD: > >case BLKSECDISCARD: { > > uint64_t range[2]; > > > if (!(mode & FMODE_WRITE)) > > return -EBADF; > Initial i thought there was error.But i searched all code of kernel and found some places like this. > > The description of EBADF is "Bad file numbe". There are some places where returned EBADF like, > >if (!f.file) > > return -EBADF; > > So i think for checking file->f_mode when failed, it should return EACCESS. But that would break the ABI at this point. I agree with you, though, EBADF is not the right error for this case. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html