Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 348842 Details for
Bug 470896
app-emulation/vmware-modules-{264,271} with kernel 3.10 - .../work/vmblock-only/linux/control.c:211:4: error: implicit declaration of function ‘create_proc_entry’ [-Werror=implicit-function-declaration]
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
271-procfs.patch
271-procfs.patch (text/plain), 22.87 KB, created by
Fabio Rossi
on 2013-05-21 18:05:32 UTC
(
hide
)
Description:
271-procfs.patch
Filename:
MIME Type:
Creator:
Fabio Rossi
Created:
2013-05-21 18:05:32 UTC
Size:
22.87 KB
patch
obsolete
>--- a/vmnet-only/bridge.c >+++ b/vmnet-only/bridge.c >@@ -105,8 +105,6 @@ static Bool VNetBridgeCycleDetect(VNetJack *this, int generation); > static Bool VNetBridgeIsDeviceWireless(struct net_device *dev); > static void VNetBridgePortsChanged(VNetJack *this); > static int VNetBridgeIsBridged(VNetJack *this); >-static int VNetBridgeProcRead(char *page, char **start, off_t off, >- int count, int *eof, void *data); > static void VNetBridgeComputeHeaderPosIPv6(struct sk_buff *skb); > static PacketStatus VNetCallSMACFunc(struct SMACState *state, > struct sk_buff **skb, void *startOfData, >@@ -225,6 +223,53 @@ VNetBridgeDevCompatible(VNetBridge *bridge, // IN: Bridge > /* > *---------------------------------------------------------------------- > * >+ * VNetBridgeProcShow -- >+ * >+ * Callback for read operation on this bridge entry in vnets proc fs. >+ * >+ * Results: >+ * Length of read operation. >+ * >+ * Side effects: >+ * None. >+ * >+ *---------------------------------------------------------------------- >+ */ >+ >+int >+VNetBridgeProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into >+ void *data) // IN: client data - pointer to bridge >+{ >+ VNetBridge *bridge = (VNetBridge*)data; >+ >+ if (!bridge) { >+ return 0; >+ } >+ >+ VNetPrintPort(&bridge->port, seqf); >+ >+ seq_printf(seqf, "dev %s ", bridge->name); >+ >+ seq_printf(seqf, "\n"); >+ >+ return 0; >+} >+ >+static int proc_bridge_open(struct inode *inode, struct file *file) >+{ >+ return single_open(file, VNetBridgeProcShow, PDE_DATA(inode)); >+} >+ >+static const struct file_operations proc_bridge_fops = { >+ .open = proc_bridge_open, >+ .read = seq_read, >+ .llseek = seq_lseek, >+ .release = seq_release, >+}; >+ >+/* >+ *---------------------------------------------------------------------- >+ * > * VNetBridge_Create -- > * > * Creates a bridge. Allocates struct, allocates internal device, >@@ -319,17 +364,14 @@ VNetBridge_Create(const char *devName, // IN: name of device (e.g., "eth0") > * Make proc entry for this jack. > */ > >- retval = VNetProc_MakeEntry(bridge->port.jack.name, S_IFREG, >- &bridge->port.jack.procEntry); >+ retval = VNetProc_MakeEntryOps(bridge->port.jack.name, S_IFREG, >+ &bridge->port.jack.procEntry, &proc_bridge_fops, bridge); > if (retval) { > if (retval == -ENXIO) { > bridge->port.jack.procEntry = NULL; > } else { > goto out; > } >- } else { >- bridge->port.jack.procEntry->read_proc = VNetBridgeProcRead; >- bridge->port.jack.procEntry->data = bridge; > } > > /* >@@ -1719,45 +1761,3 @@ VNetBridgeReceiveFromDev(struct sk_buff *skb, // IN: packet to receive > return 0; > } > >- >-/* >- *---------------------------------------------------------------------- >- * >- * VNetBridgeProcRead -- >- * >- * Callback for read operation on this bridge entry in vnets proc fs. >- * >- * Results: >- * Length of read operation. >- * >- * Side effects: >- * None. >- * >- *---------------------------------------------------------------------- >- */ >- >-int >-VNetBridgeProcRead(char *page, // IN/OUT: buffer to write into >- char **start, // OUT: 0 if file < 4k, else offset into page >- off_t off, // IN: (unused) offset of read into the file >- int count, // IN: (unused) maximum number of bytes to read >- int *eof, // OUT: TRUE if there is nothing more to read >- void *data) // IN: client data - pointer to bridge >-{ >- VNetBridge *bridge = (VNetBridge*)data; >- int len = 0; >- >- if (!bridge) { >- return len; >- } >- >- len += VNetPrintPort(&bridge->port, page+len); >- >- len += sprintf(page+len, "dev %s ", bridge->name); >- >- len += sprintf(page+len, "\n"); >- >- *start = 0; >- *eof = 1; >- return len; >-} >--- a/vmnet-only/driver.c >+++ b/vmnet-only/driver.c >@@ -1785,21 +1785,17 @@ VNetSetMACUnique(VNetPort *port, // IN: > *---------------------------------------------------------------------- > */ > >-int >+void > VNetPrintJack(const VNetJack *jack, // IN: jack >- char *buf) // OUT: info about jack >+ struct seq_file *seqf) // OUT: info about jack > { >- int len = 0; >- > read_lock(&vnetPeerLock); > if (!jack->peer) { >- len += sprintf(buf+len, "connected not "); >+ seq_printf(seqf, "connected not "); > } else { >- len += sprintf(buf+len, "connected %s ", jack->peer->name); >+ seq_printf(seqf, "connected %s ", jack->peer->name); > } > read_unlock(&vnetPeerLock); >- >- return len; > } > > >@@ -1819,52 +1815,48 @@ VNetPrintJack(const VNetJack *jack, // IN: jack > *---------------------------------------------------------------------- > */ > >-int >+void > VNetPrintPort(const VNetPort *port, // IN: port >- char *buf) // OUT: info about port >+ struct seq_file *seqf) // OUT: info about port > { >- int len = 0; >+ VNetPrintJack(&port->jack, seqf); > >- len += VNetPrintJack(&port->jack, buf+len); >- >- len += sprintf(buf+len, "mac %02x:%02x:%02x:%02x:%02x:%02x ", >+ seq_printf(seqf, "mac %02x:%02x:%02x:%02x:%02x:%02x ", > port->paddr[0], port->paddr[1], port->paddr[2], > port->paddr[3], port->paddr[4], port->paddr[5]); > >- len += sprintf(buf+len, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ", >+ seq_printf(seqf, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ", > port->ladrf[0], port->ladrf[1], port->ladrf[2], > port->ladrf[3], port->ladrf[4], port->ladrf[5], > port->ladrf[6], port->ladrf[7]); > >- len += sprintf(buf+len, "flags IFF_RUNNING"); >+ seq_printf(seqf, "flags IFF_RUNNING"); > > if (port->flags & IFF_UP) { >- len += sprintf(buf+len, ",IFF_UP"); >+ seq_printf(seqf, ",IFF_UP"); > } > > if (port->flags & IFF_BROADCAST) { >- len += sprintf(buf+len, ",IFF_BROADCAST"); >+ seq_printf(seqf, ",IFF_BROADCAST"); > } > > if (port->flags & IFF_DEBUG) { >- len += sprintf(buf+len, ",IFF_DEBUG"); >+ seq_printf(seqf, ",IFF_DEBUG"); > } > > if (port->flags & IFF_PROMISC) { >- len += sprintf(buf+len, ",IFF_PROMISC"); >+ seq_printf(seqf, ",IFF_PROMISC"); > } > > if (port->flags & IFF_MULTICAST) { >- len += sprintf(buf+len, ",IFF_MULTICAST"); >+ seq_printf(seqf, ",IFF_MULTICAST"); > } > > if (port->flags & IFF_ALLMULTI) { >- len += sprintf(buf+len, ",IFF_ALLMULTI"); >+ seq_printf(seqf, ",IFF_ALLMULTI"); > } > >- len += sprintf(buf+len, " "); >- >- return len; >+ seq_printf(seqf, " "); > } > > >--- a/vmnet-only/hub.c >+++ b/vmnet-only/hub.c >@@ -25,6 +25,7 @@ > #include <linux/sched.h> > #include <linux/slab.h> > #include <linux/poll.h> >+#include <linux/seq_file.h> > > #include <linux/netdevice.h> > #include <linux/etherdevice.h> >@@ -71,8 +72,6 @@ static void VNetHubReceive(VNetJack *this, struct sk_buff *skb); > static Bool VNetHubCycleDetect(VNetJack *this, int generation); > static void VNetHubPortsChanged(VNetJack *this); > static int VNetHubIsBridged(VNetJack *this); >-static int VNetHubProcRead(char *page, char **start, off_t off, >- int count, int *eof, void *data); > > static VNetHub *vnetHub; > static DEFINE_SPINLOCK(vnetHubLock); >@@ -241,6 +240,53 @@ VNetHub_AllocPvn(uint8 id[]) // IN: the PVN ID to alloc on > /* > *---------------------------------------------------------------------- > * >+ * VNetHubProcShow -- >+ * >+ * Callback for read operation on hub entry in vnets proc fs. >+ * >+ * Results: >+ * Length of read operation. >+ * >+ * Side effects: >+ * None. >+ * >+ *---------------------------------------------------------------------- >+ */ >+ >+int >+VNetHubProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into >+ void *data) // IN: client data - not used >+{ >+ VNetJack *jack = (VNetJack*)data; >+ VNetHub *hub; >+ >+ if (!jack || !jack->private) { >+ return 0; >+ } >+ hub = (VNetHub*)jack->private; >+ >+ VNetPrintJack(jack, seqf); >+ >+ seq_printf(seqf, "tx %u ", hub->stats[jack->index].tx); >+ seq_printf(seqf, "\n"); >+ return 0; >+} >+ >+static int proc_hub_open(struct inode *inode, struct file *file) >+{ >+ return single_open(file, VNetHubProcShow, PDE_DATA(inode)); >+} >+ >+static const struct file_operations proc_hub_fops = { >+ .open = proc_hub_open, >+ .read = seq_read, >+ .llseek = seq_lseek, >+ .release = seq_release, >+}; >+ >+/* >+ *---------------------------------------------------------------------- >+ * > * VNetHubAlloc -- > * > * Allocate a jack on this hub. >@@ -354,7 +400,7 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet > * Make proc entry for this jack. > */ > >- retval = VNetProc_MakeEntry(jack->name, S_IFREG, &jack->procEntry); >+ retval = VNetProc_MakeEntryOps(jack->name, S_IFREG, &jack->procEntry, &proc_hub_fops, jack); > if (retval) { > if (retval == -ENXIO) { > jack->procEntry = NULL; >@@ -362,9 +408,6 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet > hub->used[i] = FALSE; > return NULL; > } >- } else { >- jack->procEntry->read_proc = VNetHubProcRead; >- jack->procEntry->data = jack; > } > > /* >@@ -686,46 +729,3 @@ VNetHubIsBridged(VNetJack *this) > } > > >-/* >- *---------------------------------------------------------------------- >- * >- * VNetHubProcRead -- >- * >- * Callback for read operation on hub entry in vnets proc fs. >- * >- * Results: >- * Length of read operation. >- * >- * Side effects: >- * None. >- * >- *---------------------------------------------------------------------- >- */ >- >-int >-VNetHubProcRead(char *page, // IN/OUT: buffer to write into >- char **start, // OUT: 0 if file < 4k, else offset into page >- off_t off, // IN: offset of read into the file >- int count, // IN: maximum number of bytes to read >- int *eof, // OUT: TRUE if there is nothing more to read >- void *data) // IN: client data - not used >-{ >- VNetJack *jack = (VNetJack*)data; >- VNetHub *hub; >- int len = 0; >- >- if (!jack || !jack->private) { >- return len; >- } >- hub = (VNetHub*)jack->private; >- >- len += VNetPrintJack(jack, page+len); >- >- len += sprintf(page+len, "tx %u ", hub->stats[jack->index].tx); >- >- len += sprintf(page+len, "\n"); >- >- *start = 0; >- *eof = 1; >- return len; >-} >--- a/vmnet-only/netif.c >+++ b/vmnet-only/netif.c >@@ -62,8 +62,6 @@ static int VNetNetifStartXmit(struct sk_buff *skb, struct net_device *dev); > static struct net_device_stats *VNetNetifGetStats(struct net_device *dev); > static int VNetNetifSetMAC(struct net_device *dev, void *addr); > static void VNetNetifSetMulticast(struct net_device *dev); >-static int VNetNetIfProcRead(char *page, char **start, off_t off, >- int count, int *eof, void *data); > > /* > *---------------------------------------------------------------------- >@@ -116,6 +114,53 @@ VNetNetIfSetup(struct net_device *dev) // IN: > > } > >+/* >+ *---------------------------------------------------------------------- >+ * >+ * VNetNetIfProcShow -- >+ * >+ * Callback for read operation on this netif entry in vnets proc fs. >+ * >+ * Results: >+ * Length of read operation. >+ * >+ * Side effects: >+ * None. >+ * >+ *---------------------------------------------------------------------- >+ */ >+ >+int >+VNetNetIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into >+ void *data) // IN: client data >+{ >+ VNetNetIF *netIf = data; >+ >+ if (!netIf) { >+ return 0; >+ } >+ >+ VNetPrintPort(&netIf->port, seqf); >+ >+ seq_printf(seqf, "dev %s ", netIf->dev->name); >+ >+ seq_printf(seqf, "\n"); >+ >+ return 0; >+} >+ >+static int proc_netif_open(struct inode *inode, struct file *file) >+{ >+ return single_open(file, VNetNetIfProcShow, PDE_DATA(inode)); >+} >+ >+static const struct file_operations proc_netif_fops = { >+ .open = proc_netif_open, >+ .read = seq_read, >+ .llseek = seq_lseek, >+ .release = seq_release, >+}; >+ > > /* > *---------------------------------------------------------------------- >@@ -180,16 +225,13 @@ VNetNetIf_Create(char *devName, // IN: > * Make proc entry for this jack. > */ > >- retval = VNetProc_MakeEntry(netIf->port.jack.name, S_IFREG, >- &netIf->port.jack.procEntry); >+ retval = VNetProc_MakeEntryOps(netIf->port.jack.name, S_IFREG, >+ &netIf->port.jack.procEntry, &proc_netif_fops, netIf); > if (retval) { > netIf->port.jack.procEntry = NULL; > if (retval != -ENXIO) { > goto outFreeDev; > } >- } else { >- netIf->port.jack.procEntry->read_proc = VNetNetIfProcRead; >- netIf->port.jack.procEntry->data = netIf; > } > > /* >@@ -553,45 +595,3 @@ VNetNetifGetStats(struct net_device *dev) // IN: > return &netIf->stats; > } > >- >-/* >- *---------------------------------------------------------------------- >- * >- * VNetNetIfProcRead -- >- * >- * Callback for read operation on this netif entry in vnets proc fs. >- * >- * Results: >- * Length of read operation. >- * >- * Side effects: >- * None. >- * >- *---------------------------------------------------------------------- >- */ >- >-int >-VNetNetIfProcRead(char *page, // IN/OUT: buffer to write into >- char **start, // OUT: 0 if file < 4k, else offset into page >- off_t off, // IN: (unused) offset of read into the file >- int count, // IN: (unused) maximum number of bytes to read >- int *eof, // OUT: TRUE if there is nothing more to read >- void *data) // IN: client data >-{ >- VNetNetIF *netIf = data; >- int len = 0; >- >- if (!netIf) { >- return len; >- } >- >- len += VNetPrintPort(&netIf->port, page+len); >- >- len += sprintf(page+len, "dev %s ", netIf->dev->name); >- >- len += sprintf(page+len, "\n"); >- >- *start = 0; >- *eof = 1; >- return len; >-} >--- a/vmnet-only/procfs.c >+++ b/vmnet-only/procfs.c >@@ -45,10 +45,6 @@ > > #if defined(CONFIG_PROC_FS) > >-static int VNetProcMakeEntryInt(VNetProcEntry *parent, char *name, int mode, >- VNetProcEntry **ret); >-static void VNetProcRemoveEntryInt(VNetProcEntry *node, VNetProcEntry *parent); >- > static VNetProcEntry *base = NULL; > > >@@ -71,7 +67,12 @@ static VNetProcEntry *base = NULL; > int > VNetProc_Init(void) > { >- return VNetProcMakeEntryInt(NULL, "vmnet", S_IFDIR, &base); >+ base = proc_mkdir("vmnet", NULL); >+ if(IS_ERR(base)) { >+ base = NULL; >+ return PTR_ERR(base); >+ } >+ return 0; > } > > >@@ -94,14 +95,14 @@ VNetProc_Init(void) > void > VNetProc_Cleanup(void) > { >- VNetProcRemoveEntryInt(base, NULL); >+ proc_remove(base); > base = NULL; > } > > /* > *---------------------------------------------------------------------- > * >- * VNetProcMakeEntryInt -- >+ * VNetProc_MakeEntryOps -- > * > * Make an entry in the vnets proc file system. > * >@@ -116,72 +117,21 @@ VNetProc_Cleanup(void) > */ > > int >-VNetProcMakeEntryInt(VNetProcEntry *parent, // IN: >- char *name, // IN: >+VNetProc_MakeEntryOps(char *name, // IN: > int mode, // IN: >- VNetProcEntry **ret) // OUT: >+ VNetProcEntry **ret, >+ const struct file_operations *fops, >+ void *data >+ ) // OUT: > { > VNetProcEntry *ent; >- ent = create_proc_entry(name, mode, parent); >+ ent = proc_create_data(name, mode, base, fops, data); > *ret = ent; > if (!ent) > return -ENOMEM; > return 0; > } > >- >-/* >- *---------------------------------------------------------------------- >- * >- * VNetProcRemoveEntryInt -- >- * >- * Remove a previously installed proc entry. >- * >- * Results: >- * None. >- * >- * Side effects: >- * None. >- * >- *---------------------------------------------------------------------- >- */ >- >-void >-VNetProcRemoveEntryInt(VNetProcEntry *node, >- VNetProcEntry *parent) >-{ >- if (node) { >- remove_proc_entry(node->name, parent); >- } >-} >- >- >-/* >- *---------------------------------------------------------------------- >- * >- * VNetProc_MakeEntry -- >- * >- * Make an entry in the vnets proc file system. >- * >- * Results: >- * errno. If errno is 0 and ret is non NULL then ret is filled >- * in with the resulting proc entry. >- * >- * Side effects: >- * None. >- * >- *---------------------------------------------------------------------- >- */ >- >-int >-VNetProc_MakeEntry(char *name, // IN: >- int mode, // IN: >- VNetProcEntry **ret) // OUT: >-{ >- return VNetProcMakeEntryInt(base, name, mode, ret); >-} >- >- > /* > *---------------------------------------------------------------------- > * >@@ -201,7 +151,8 @@ VNetProc_MakeEntry(char *name, // IN: > void > VNetProc_RemoveEntry(VNetProcEntry *node) > { >- VNetProcRemoveEntryInt(node, base); >+ if(node) >+ proc_remove(node); > } > > >@@ -253,31 +204,6 @@ VNetProc_Cleanup(void) > } > > >-/* >- *---------------------------------------------------------------------- >- * >- * VNetProc_MakeEntry -- >- * >- * Make an entry in the vnets proc file system. >- * >- * Results: >- * errno. If errno is 0 and ret is non NULL then ret is filled >- * in with the resulting proc entry. >- * >- * Side effects: >- * None. >- * >- *---------------------------------------------------------------------- >- */ >- >-int >-VNetProc_MakeEntry(char *name, >- int mode, >- VNetProcEntry **ret) >-{ >- return -ENXIO; >-} >- > > /* > *---------------------------------------------------------------------- >--- a/vmnet-only/userif.c >+++ b/vmnet-only/userif.c >@@ -389,7 +389,7 @@ VNetUserIfReceive(VNetJack *this, // IN > /* > *---------------------------------------------------------------------- > * >- * VNetUserIfProcRead -- >+ * VNetUserIfProcShow -- > * > * Callback for read operation on this userif entry in vnets proc fs. > * >@@ -403,30 +403,23 @@ VNetUserIfReceive(VNetJack *this, // IN > */ > > static int >-VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into >- char **start, // OUT: 0 if file < 4k, else offset into >- // page >- off_t off, // IN: offset of read into the file >- int count, // IN: maximum number of bytes to read >- int *eof, // OUT: TRUE if there is nothing more to >- // read >+VNetUserIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into > void *data) // IN: client data - not used > { > VNetUserIF *userIf = (VNetUserIF*)data; >- int len = 0; > > if (!userIf) { >- return len; >+ return 0; > } > >- len += VNetPrintPort(&userIf->port, page+len); >+ VNetPrintPort(&userIf->port, seqf); > >- len += sprintf(page+len, "read %u written %u queued %u ", >+ seq_printf(seqf, "read %u written %u queued %u ", > userIf->stats.read, > userIf->stats.written, > userIf->stats.queued); > >- len += sprintf(page+len, >+ seq_printf(seqf, > "dropped.down %u dropped.mismatch %u " > "dropped.overflow %u dropped.largePacket %u", > userIf->stats.droppedDown, >@@ -434,13 +427,23 @@ VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into > userIf->stats.droppedOverflow, > userIf->stats.droppedLargePacket); > >- len += sprintf(page+len, "\n"); >+ seq_printf(seqf, "\n"); > >- *start = 0; >- *eof = 1; >- return len; >+ return 0; >+} >+ >+static int proc_userif_open(struct inode *inode, struct file *file) >+{ >+ return single_open(file, VNetUserIfProcShow, PDE_DATA(inode)); > } > >+static const struct file_operations proc_userif_fops = { >+ .open = proc_userif_open, >+ .read = seq_read, >+ .llseek = seq_lseek, >+ .release = seq_release, >+}; >+ > > /* > *---------------------------------------------------------------------- >@@ -1036,8 +1039,8 @@ VNetUserIf_Create(VNetPort **ret) // OUT > * Make proc entry for this jack. > */ > >- retval = VNetProc_MakeEntry(userIf->port.jack.name, S_IFREG, >- &userIf->port.jack.procEntry); >+ retval = VNetProc_MakeEntryOps(userIf->port.jack.name, S_IFREG, >+ &userIf->port.jack.procEntry, &proc_userif_fops, userIf); > if (retval) { > if (retval == -ENXIO) { > userIf->port.jack.procEntry = NULL; >@@ -1045,9 +1048,6 @@ VNetUserIf_Create(VNetPort **ret) // OUT > kfree(userIf); > return retval; > } >- } else { >- userIf->port.jack.procEntry->read_proc = VNetUserIfProcRead; >- userIf->port.jack.procEntry->data = userIf; > } > > /* >--- a/vmnet-only/vnetInt.h >+++ b/vmnet-only/vnetInt.h >@@ -171,12 +171,14 @@ VNetJack *VNetDisconnect(VNetJack *jack); > > void VNetSend(const VNetJack *jack, struct sk_buff *skb); > >-int VNetProc_MakeEntry(char *name, int mode, >- VNetProcEntry **ret); >+int VNetProc_MakeEntryOps(char *name, int mode, >+ VNetProcEntry **ret, >+ const struct file_operations *fops, >+ void *data); > > void VNetProc_RemoveEntry(VNetProcEntry *node); > >-int VNetPrintJack(const VNetJack *jack, char *buf); >+void VNetPrintJack(const VNetJack *jack, struct seq_file *seqf); > > int VNet_MakeMACAddress(VNetPort *port); > >@@ -196,7 +198,7 @@ Bool VNetPacketMatch(const uint8 *destAddr, const uint8 *ifAddr, > > Bool VNetCycleDetectIf(const char *name, int generation); > >-int VNetPrintPort(const VNetPort *port, char *buf); >+void VNetPrintPort(const VNetPort *port, struct seq_file *seqf); > > int VNetSnprintf(char *str, size_t size, const char *format, ...); > >-- >--- a/vmblock-only/linux/control.c 2013-05-21 19:21:19.165750556 +0200 >+++ b/vmblock-only/linux/control.c 2013-05-21 19:22:18.363747723 +0200 >@@ -208,9 +208,10 @@ > VMBlockSetProcEntryOwner(controlProcMountpoint); > > /* Create /proc/fs/vmblock/dev */ >- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME, >- VMBLOCK_CONTROL_MODE, >- controlProcDirEntry); >+ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, >+ VMBLOCK_CONTROL_MODE, >+ controlProcDirEntry, >+ &ControlFileOps); > if (!controlProcEntry) { > Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n"); > remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry); >@@ -218,7 +219,6 @@ > return -EINVAL; > } > >- controlProcEntry->proc_fops = &ControlFileOps; > return 0; > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 470896
: 348842 |
352406
|
352846