Bug 2842 - xfs_growfs падает с отрицательным значением.
: xfs_growfs падает с отрицательным значением.
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/xfsprogs)
: unstable
: all Linux
: P4 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2003-08-15 15:53 by
Modified: 2009-06-16 17:36 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2003-08-15 15:53:58
xfs_grouwfs -D -5g /some-xfs
kernel BUG at filename.c:839!
invalid operand: 00000 ....
....
Нехватает проверки на отрицательные значения параметра D
---

---

------- Comment #1 From 2003-08-25 20:46:17 -------
Ok. I've looked into code of xfsprogs and it looks like very simple codechange.
However, additional audit for every other XFS utility is needed to ensure it
doesn't behave incorrectly with negative numbers as well.
------- Comment #2 From 2003-12-07 14:13:15 -------
Будет исправлено в следующей сборке.
------- Comment #3 From 2006-10-02 10:05:26 -------
xfsprogs-2.6.4-alt1 на не совсем честном тесте на loopback высказались:
xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Input/output error

В любом разе надеюсь, что Саша хотя бы в оракулы сгодился...
------- Comment #4 From 2006-10-02 11:53:32 -------
в чём, собственно, баг ?
Пожалуйста, простыми фразами.
------- Comment #5 From 2006-12-17 21:22:56 -------
При попытке указать отрицательное значение _целевого_ размера data section
(даже
не прироста) оно померло.

Это, типа, если прикинуться, что "grow" мы не понимаем, почитать, что оно умеет
только расти, тоже лениво, а написанное в manpage -- вообще не барское дело ;-)

Но падает оно зря.  Да и файловый параметр принимает очень забавно, хорошо, что
хватило ума добавленное "по инерции" sudo убрать:

home:~> rpm -q xfsprogs 
xfsprogs-2.8.16-alt1
home:~> dd if=/dev/zero of=test.img bs=1M count=64
64+0 records in
64+0 records out
67108864 bytes (67 MB) copied, 0.793148 seconds, 84.6 MB/s
home:~> man mkfs.xfs
home:~> sudo mkfs.xfs test.img
Password:
meta-data=test.img               isize=256    agcount=4, agsize=4096 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=16384, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096  
log      =internal log           bsize=4096   blocks=1200, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=4096   blocks=0, rtextents=0
home:~> /usr/sbin/xfs_growfs -D -5g test.img
xfs_growfs: cannot open /dev/hda7: Permission denied
home:~> df -T .
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda7      xfs     14G   14G  779M  95% /home
------- Comment #6 From 2006-12-17 21:31:51 -------
ох.
------- Comment #7 From 2009-06-16 17:36:32 -------
На тестовом разделе:

t-hard:~> rpm -q xfsprogs 
xfsprogs-3.0.1-alt1
t-hard:~> sudo mkfs.xfs -d size=104857600 -f /dev/sdd1 
meta-data=/dev/sdd1              isize=256    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=1200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
t-hard:~> mkdir XFS
t-hard:~> sudo mount /dev/sdd1 XFS                    
t-hard:~> sudo /usr/sbin/xfs_growfs -D 251000 /dev/sdd1         
meta-data=/dev/sdd1              isize=256    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=1200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 25600 to 251000
t-hard:~> sudo /usr/sbin/xfs_growfs -D -5g /dev/sdd1 
meta-data=/dev/sdd1              isize=256    agcount=40, agsize=6400 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=251000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=1200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Input/output error
t-hard:~> sudo /usr/sbin/xfs_growfs -D 250000 /dev/sdd1 
meta-data=/dev/sdd1              isize=256    agcount=40, agsize=6400 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=251000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=1200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
data size 250000 too small, old size is 251000

Иными словами, УМВР.