From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58207) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dIlvZ-0001WN-6s for qemu-devel@nongnu.org; Wed, 07 Jun 2017 21:07:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dIlvU-0004S7-6T for qemu-devel@nongnu.org; Wed, 07 Jun 2017 21:07:57 -0400 Received: from mga06.intel.com ([134.134.136.31]:1920) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dIlvT-0004Rv-SC for qemu-devel@nongnu.org; Wed, 07 Jun 2017 21:07:52 -0400 Date: Thu, 8 Jun 2017 09:07:48 +0800 From: Haozhong Zhang Message-ID: <20170608010748.jqcdbcnt44pvqjsr@hz-desktop> References: <20170606072229.9302-1-haozhong.zhang@intel.com> <20170606072229.9302-3-haozhong.zhang@intel.com> <20170607151445.GE21990@stefanha-x1.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170607151445.GE21990@stefanha-x1.localdomain> Subject: Re: [Qemu-devel] [PATCH v2 2/4] nvdimm: warn if the backend is not a DAX device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: qemu-devel@nongnu.org, "Michael S. Tsirkin" , Igor Mammedov , Xiao Guangrong , Dan Williams On 06/07/17 16:14 +0100, Stefan Hajnoczi wrote: > On Tue, Jun 06, 2017 at 03:22:27PM +0800, Haozhong Zhang wrote: > > diff --git a/util/osdep.c b/util/osdep.c > > index a2863c8e53..02881f96bc 100644 > > --- a/util/osdep.c > > +++ b/util/osdep.c > > @@ -471,3 +471,64 @@ writev(int fd, const struct iovec *iov, int iov_cnt) > > return readv_writev(fd, iov, iov_cnt, true); > > } > > #endif > > + > > +#ifdef __linux__ > > +static ssize_t qemu_dev_dax_sysfs_read(int fd, const char *entry, > > + char *buf, size_t len) > > +{ > > + ssize_t read_bytes; > > + struct stat st; > > + unsigned int major, minor; > > + char *path, *pos; > > + int sysfs_fd; > > + > > + if (fstat(fd, &st)) { > > + return 0; > > + } > > + > > + major = major(st.st_rdev); > > + minor = minor(st.st_rdev); > > + path = g_strdup_printf("/sys/dev/char/%u:%u/%s", major, minor, entry); > > + > > + sysfs_fd = open(path, O_RDONLY); > > + g_free(path); > > + if (sysfs_fd == -1) { > > + return 0; > > + } > > + > > + read_bytes = read(sysfs_fd, buf, len - 1); > > + close(sysfs_fd); > > + if (read_bytes > 0) { > > + buf[read_bytes] = '\0'; > > + pos = g_strstr_len(buf, read_bytes, "\n"); > > + if (pos) { > > + *pos = '\0'; > > + } > > Should read_bytes be adjusted since we made the string shorter? Yes, I'll change in the next version. Thanks, Haozhong