Implement Linux BLKGETSIZE64 ioctl.

MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Edward Tomasz Napierala 2019-12-29 12:22:11 +00:00
parent 350bfebba9
commit b9594cd92d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356170
2 changed files with 12 additions and 1 deletions

View file

@ -278,6 +278,7 @@ linux_ioctl_disk(struct thread *td, struct linux_ioctl_args *args)
struct file *fp;
int error;
u_int sectorsize;
uint64_t blksize64;
off_t mediasize;
error = fget(td, args->fd, &cap_ioctl_rights, &fp);
@ -300,6 +301,15 @@ linux_ioctl_disk(struct thread *td, struct linux_ioctl_args *args)
return (copyout(&sectorsize, (void *)args->arg,
sizeof(sectorsize)));
break;
case LINUX_BLKGETSIZE64:
error = fo_ioctl(fp, DIOCGMEDIASIZE,
(caddr_t)&mediasize, td->td_ucred, td);
fdrop(fp, td);
if (error)
return (error);
blksize64 = mediasize;;
return (copyout(&blksize64, (void *)args->arg,
sizeof(blksize64)));
case LINUX_BLKSSZGET:
error = fo_ioctl(fp, DIOCGSECTORSIZE,
(caddr_t)&sectorsize, td->td_ucred, td);

View file

@ -57,9 +57,10 @@
#define LINUX_BLKSECTSET 0x1266
#define LINUX_BLKSECTGET 0x1267
#define LINUX_BLKSSZGET 0x1268
#define LINUX_BLKGETSIZE64 0x1272
#define LINUX_IOCTL_DISK_MIN LINUX_BLKROSET
#define LINUX_IOCTL_DISK_MAX LINUX_BLKSSZGET
#define LINUX_IOCTL_DISK_MAX LINUX_BLKGETSIZE64
/*
* hdio