Skip to content

Commit be0f305

Browse files
committed
WIP ioctl: rename logical_to_ino to logical_ino
Wipperdewip
1 parent 79979a9 commit be0f305

File tree

3 files changed

+37
-19
lines changed

3 files changed

+37
-19
lines changed

btrfs/ctree.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1340,8 +1340,8 @@ class ExtentItem(ItemData):
13401340
is ignored when creating these kind of objects from a metadata search.
13411341
13421342
Instead, to find out who is referencing data from an extent, the
1343-
:func:`btrfs.ioctl.logical_to_ino` and
1344-
:func:`btrfs.ioctl.logical_to_ino_v2` functions can be used.
1343+
:func:`btrfs.ioctl.logical_ino` and
1344+
:func:`btrfs.ioctl.logical_ino_v2` functions can be used.
13451345
13461346
:ivar int vaddr: Virtual address where the Extent starts (taken from the
13471347
objectid field of the item key).

btrfs/ioctl.py

+25-7
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ def _search(fd, tree, min_key=None, max_key=None,
489489
Inode = namedtuple('Inode', ['inum', 'offset', 'root'])
490490

491491

492-
def logical_to_ino(fd, vaddr, bufsize=4096):
492+
def logical_ino(fd, vaddr, bufsize=4096):
493493
"""Call the `BTRFS_IOC_LOGICAL_INO` ioctl.
494494
495495
The `LOGICAL_INO` ioctl helps us converting a virtual address into a list
@@ -500,7 +500,7 @@ def logical_to_ino(fd, vaddr, bufsize=4096):
500500
501501
>>> import btrfs
502502
>>> with btrfs.FileSystem('/') as fs:
503-
... btrfs.ioctl.logical_to_ino(fs.fd, 607096483840)
503+
... btrfs.ioctl.logical_ino(fs.fd, 607096483840)
504504
([Inode(inum=4686948, offset=0, root=259),
505505
Inode(inum=4686948, offset=0, root=2104)], 0)
506506
@@ -523,15 +523,24 @@ def logical_to_ino(fd, vaddr, bufsize=4096):
523523
reference any block in the extent, use the logical ino v2 ioctl instead,
524524
while setting the ignore_offset flag.
525525
"""
526-
return _logical_to_ino(fd, vaddr, bufsize, _v2=False)
526+
return _logical_ino(fd, vaddr, bufsize, _v2=False)
527+
528+
529+
def logical_to_ino(*args, **kwargs):
530+
"""
531+
.. deprecated:: 15
532+
Backwards compatibility function. Use :func:`~btrfs.ioctl.logical_ino`
533+
instead.
534+
"""
535+
return logical_ino(*args, **kwargs)
527536

528537

529538
ioctl_logical_ino_args_v2 = struct.Struct('=QQ24xQQ')
530539
IOC_LOGICAL_INO_V2 = _IOWR(BTRFS_IOCTL_MAGIC, 59, ioctl_logical_ino_args)
531540
LOGICAL_INO_ARGS_IGNORE_OFFSET = 1 << 0
532541

533542

534-
def logical_to_ino_v2(fd, vaddr, bufsize=4096, ignore_offset=False):
543+
def logical_ino_v2(fd, vaddr, bufsize=4096, ignore_offset=False):
535544
"""Call the `BTRFS_IOC_LOGICAL_INO_V2` ioctl.
536545
537546
The `LOGICAL_INO_V2` ioctl helps us converting a virtual address into a
@@ -542,7 +551,7 @@ def logical_to_ino_v2(fd, vaddr, bufsize=4096, ignore_offset=False):
542551
543552
>>> import btrfs
544553
>>> with btrfs.FileSystem('/') as fs:
545-
... btrfs.ioctl.logical_to_ino_v2(fs.fd, 607096483840)
554+
... btrfs.ioctl.logical_ino_v2(fs.fd, 607096483840)
546555
([Inode(inum=4686948, offset=0, root=259),
547556
Inode(inum=4686948, offset=0, root=2104)], 0)
548557
@@ -562,10 +571,19 @@ def logical_to_ino_v2(fd, vaddr, bufsize=4096, ignore_offset=False):
562571
results, retry the call with a larger buffer, adding the amount of bytes
563572
that was reported to be additionally needed.
564573
"""
565-
return _logical_to_ino(fd, vaddr, bufsize, ignore_offset, _v2=True)
574+
return _logical_ino(fd, vaddr, bufsize, ignore_offset, _v2=True)
575+
576+
577+
def logical_to_ino_v2(*args, **kwargs):
578+
"""
579+
.. deprecated:: 15
580+
Backwards compatibility function. Use
581+
:func:`~btrfs.ioctl.logical_ino_v2` instead.
582+
"""
583+
return logical_ino(*args, **kwargs)
566584

567585

568-
def _logical_to_ino(fd, vaddr, bufsize=4096, ignore_offset=False, _v2=True):
586+
def _logical_ino(fd, vaddr, bufsize=4096, ignore_offset=False, _v2=True):
569587
if _v2:
570588
bufsize = min(bufsize, 16777216)
571589
else:

examples/show_block_group_data_extent_filenames.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@
1010

1111

1212
def using_v1(fd, vaddr):
13-
return btrfs.ioctl.logical_to_ino(fd, vaddr)
13+
return btrfs.ioctl.logical_ino(fd, vaddr)
1414

1515

1616
def using_v2(fd, vaddr):
17-
inodes, bytes_missed = btrfs.ioctl.logical_to_ino_v2(fd, vaddr, ignore_offset=True)
17+
inodes, bytes_missed = btrfs.ioctl.logical_ino_v2(fd, vaddr, ignore_offset=True)
1818
if bytes_missed > 0:
1919
inodes, bytes_missed = \
20-
btrfs.ioctl.logical_to_ino_v2(fd, vaddr, bufsize=65536+bytes_missed,
20+
btrfs.ioctl.logical_ino_v2(fd, vaddr, bufsize=65536+bytes_missed,
2121
ignore_offset=True)
2222
return inodes, bytes_missed
2323

2424

2525
def find_out_about_v1_or_v2(fd, vaddr):
26-
global logical_to_ino_fn
26+
global logical_ino_fn
2727
try:
2828
inodes, bytes_missed = using_v2(fd, vaddr)
29-
logical_to_ino_fn = using_v2
29+
logical_ino_fn = using_v2
3030
return inodes, bytes_missed
3131
except IOError as e:
3232
if e.errno == errno.ENOTTY:
3333
inodes, bytes_missed = using_v1(fd, vaddr)
34-
logical_to_ino_fn = using_v1
34+
logical_ino_fn = using_v1
3535
return inodes, bytes_missed
3636
raise
3737

@@ -43,13 +43,13 @@ def find_out_about_v1_or_v2(fd, vaddr):
4343
block_group = fs.block_group(vaddr)
4444
print(block_group)
4545

46-
logical_to_ino_fn = find_out_about_v1_or_v2
46+
logical_ino_fn = find_out_about_v1_or_v2
4747

4848
for extent in fs.extents(vaddr, vaddr + block_group.length - 1):
4949
if isinstance(extent, btrfs.ctree.ExtentItem) \
5050
and extent.flags & btrfs.ctree.EXTENT_FLAG_DATA:
5151
print(extent)
52-
inodes, bytes_missed = logical_to_ino_fn(fs.fd, extent.vaddr)
52+
inodes, bytes_missed = logical_ino_fn(fs.fd, extent.vaddr)
5353
for inode in inodes:
5454
if inode.root == btrfs.ctree.FS_TREE_OBJECTID or \
5555
(inode.root >= btrfs.ctree.FIRST_FREE_OBJECTID and
@@ -70,10 +70,10 @@ def find_out_about_v1_or_v2(fd, vaddr):
7070
else:
7171
print(" root {} inode {} offset {}".format(
7272
inode.root, inode.inum, inode.offset))
73-
if len(inodes) == 0 and logical_to_ino_fn == using_v1:
73+
if len(inodes) == 0 and logical_ino_fn == using_v1:
7474
print(" [... no result and no kernel support for LOGICAL_INO_V2]")
7575
if bytes_missed > 0:
76-
if logical_to_ino_fn == using_v1:
76+
if logical_ino_fn == using_v1:
7777
print(" [... remainder can't be shown; no kernel support for LOGICAL_INO_V2]") # noqa
7878
else:
7979
print(" [... remainder can't be shown; too many items for buffer size]")

0 commit comments

Comments
 (0)