From: Anand Jain <Anand.Jain@oracle.com>
To: dsterba@suse.cz
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 4/9 v2] btrfs-progs: check if btrfs kernel module is loaded
Date: Mon, 15 Apr 2013 15:14:12 +0800 [thread overview]
Message-ID: <516BA8C4.4050800@oracle.com> (raw)
In-Reply-To: <20130412162325.GA18193@twin.jikos.cz>
On 04/13/2013 12:23 AM, David Sterba wrote:
> On Wed, Apr 10, 2013 at 04:23:21PM +0800, Anand Jain wrote:
>> diff --git a/cmds-device.c b/cmds-device.c
>> index a90fb67..0e1e6de 100644
>> --- a/cmds-device.c
>> +++ b/cmds-device.c
>> @@ -185,9 +185,10 @@ static const char * const cmd_scan_dev_usage[] = {
>>
>> static int cmd_scan_dev(int argc, char **argv)
>> {
>> - int i, fd, e;
>> + int i, fd = -1, e, ret = 0;
>> int checklist = 1;
>> int devstart = 1;
>> + u64 flag_reg = 0ull;
>
> Do you need it to be u64? I see it's used only as a bool flag.
Yes. more below..
>> + if (is_btrfs_kernel_loaded())
>> + flag_reg = BTRFS_SCAN_REGISTER;
>
> flag_reg = 1;
>
> would work the same, so it should be fine with int.
actually no. The intention was to use it as the
parameter for btrfs_scan_block_devices, v2 fixes
this. Thanks for the catch.
---
- ret = btrfs_scan_block_devices(BTRFS_SCAN_REGISTER);
+ ret = btrfs_scan_block_devices(flag_reg);
---
>> }
>>
>> + printf("Scanning for Btrfs in\n");
> ...
>> - printf("Scanning for Btrfs filesystems in '%s'\n", argv[i]);
>
> Please keep the word 'filesystem' in the message
got this in v3
>> @@ -261,6 +287,10 @@ static int cmd_ready_dev(int argc, char **argv)
>> if (check_argc_min(argc, 2))
>> usage(cmd_ready_dev_usage);
>>
>> + if (!is_btrfs_kernel_loaded()) {
>> + fprintf(stderr, "btrfs kernel module is not loaded\n");
>> + return 10;
>
> return 1 or -1
got this into v3
>> --- a/mkfs.c
>> +++ b/mkfs.c
>> @@ -1420,6 +1420,7 @@ int main(int ac, char **av)
>> u64 flags;
>> int dev_cnt=0;
>> int saved_optind;
>> + int flag_reg=1;
>
> ah, here it is an 'int'
>
>> --- a/utils.c
>> +++ b/utils.c
>> @@ -1016,6 +1016,33 @@ struct pending_dir {
>> +/*
>> + * return 1 if btrfs kernel is present
>> + * return 0 for not
>> + */
>> +int is_btrfs_kernel_loaded()
>> +{
>> + FILE *pfs;
>> + char fsname[100];
>> + int ret = -1;
>> + char line[100];
>> +
>> + pfs = fopen("/proc/filesystems", "r");
>> + if (pfs) {
>> + ret = 0;
>> + while (fgets(line, sizeof(line), pfs)) {
>> + if (sscanf(line, "nodev %[^#\n]\n", fsname) == 1) continue;
>
> if (!strncmp("nodev", line, 5))
> continue;
got this into v3
>> + if (sscanf(line, " %[^# \n]\n", fsname) != 1) continue;
>> + if (!strcmp(fsname, "btrfs")) {
>> + ret = 1;
>> + break;
>> + }
>> + }
>> + fclose(pfs);
>> + }
>> + return ret;
>> +}
>> +
>> void btrfs_register_one_device(char *fname)
>> {
>> struct btrfs_ioctl_vol_args args;
>> @@ -1023,6 +1050,11 @@ void btrfs_register_one_device(char *fname)
>> int ret;
>> int e;
>>
>> + if (!is_btrfs_kernel_loaded()) {
>> + fprintf(stderr, "btrfs kernel module is not loaded, "
>> + "skipping device registration\n");
>> + return;
>> + }
>> fd = open("/dev/btrfs-control", O_RDONLY);
>> if (fd < 0) {
>> fprintf(stderr, "failed to open /dev/btrfs-control "
>
> Otherwise ok.
> david
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2013-04-15 7:13 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-05 5:54 [PATCH 0/9] a bunch of miscellaneous bug fixes Anand Jain
2013-04-05 5:54 ` [PATCH 1/9] [RESEND] btrfs-progs: root_item generation_v2 is out of sync after btrfsck Anand Jain
2013-04-05 5:54 ` [PATCH 2/9] btrfs-progs: no pending balance is not an error Anand Jain
2013-04-12 15:57 ` David Sterba
2013-04-15 2:22 ` Anand Jain
2013-04-05 5:54 ` [PATCH 3/9] btrfs-progs: mkfs should first check all disks before writing to a disk Anand Jain
2013-04-12 16:06 ` David Sterba
2013-04-15 6:47 ` Anand Jain
2013-04-05 5:54 ` [PATCH 4/9] btrfs-progs: check if btrfs kernel module is loaded Anand Jain
2013-04-10 8:23 ` [PATCH 4/9 v2] " Anand Jain
2013-04-12 16:23 ` David Sterba
2013-04-15 7:14 ` Anand Jain [this message]
2013-04-05 5:54 ` [PATCH 5/9] [RESEND] btrfs-progs: delete unused function get_mountpt Anand Jain
2013-04-05 5:55 ` [PATCH 6/9] btrfs-progs: mkfs stdout print to match chronology Anand Jain
2013-04-05 5:55 ` [PATCH 7/9] btrfs-progs: cmd replace should check target-dev fully Anand Jain
2013-04-05 5:55 ` [PATCH 8/9] btrfs-progs: btrfs-select-super output is confusing when it fails Anand Jain
2013-04-05 5:55 ` [PATCH 9/9] btrfs-progs: fix btrfs scrub start help Anand Jain
2013-04-05 9:05 ` Stefan Behrens
2013-04-08 2:09 ` [PATCH 9/9 v2] " Anand Jain
2013-04-08 2:20 ` [PATCH 9/9 v3] " Anand Jain
2013-04-11 9:58 ` [PATCH] btrfs-progs: avoid ioctl for multipath-dev with its non-multipath path Anand Jain
2013-04-15 6:38 ` [PATCH 00/11 v2] a bunch of miscellaneous bug fixes Anand Jain
2013-04-15 6:38 ` [PATCH 01/11, RESEND] btrfs-progs: root_item generation_v2 is out of sync after btrfsck Anand Jain
2013-04-21 23:09 ` Eric Sandeen
2013-04-15 6:38 ` [PATCH 02/11, RESEND] btrfs-progs: no pending balance is not an error Anand Jain
2013-04-15 6:44 ` [PATCH 02/11, v2] " Anand Jain
2013-04-16 4:58 ` [PATCH 02/11 v3] " Anand Jain
2013-04-15 16:21 ` [PATCH 02/11, RESEND] " David Sterba
2013-04-16 5:02 ` Anand Jain
2013-04-15 6:38 ` [PATCH 03/11 v2] btrfs-progs: mkfs should first check all disks before writing to a disk Anand Jain
2013-04-15 6:38 ` [PATCH 04/11 v2] btrfs-progs: cmd replace should check target-dev fully Anand Jain
2013-04-15 6:38 ` [PATCH 05/11, RESEND] btrfs-progs: mkfs stdout print to match chronology Anand Jain
2013-04-15 6:38 ` [PATCH 06/11, v2] btrfs-progs: check if btrfs kernel module is loaded Anand Jain
2013-04-15 7:11 ` [PATCH 06/11 v3] " Anand Jain
2013-04-15 6:38 ` [PATCH 07/11, RESEND] btrfs-progs: delete unused function get_mountpt Anand Jain
2013-04-15 6:38 ` [PATCH 08/11, RESEND] btrfs-progs: btrfs-select-super output is confusing when it fails Anand Jain
2013-04-15 6:38 ` [PATCH 09/11, RESEND] btrfs-progs: fix btrfs scrub start help Anand Jain
2013-04-15 6:38 ` [PATCH 10/11, RESEND] btrfs-progs: avoid ioctl for multipath-dev with its non-multipath path Anand Jain
2013-04-15 6:38 ` [PATCH 11/11, RESEND] btrfs-progs: a copy of superblock is zero may not mean btrfs is not there Anand Jain
2013-04-16 12:15 ` [PATCH 00/11 v2] a bunch of miscellaneous bug fixes David Sterba
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=516BA8C4.4050800@oracle.com \
--to=anand.jain@oracle.com \
--cc=dsterba@suse.cz \
--cc=linux-btrfs@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.