Menu

Next Kernel Patch?

epsilon
2016-10-13
2016-11-02
  • epsilon

    epsilon - 2016-10-13

    When is the Next Kernel Patch? (Когда следующий патч для ядра)

     

    Last edit: epsilon 2016-10-14
  • epsilon

    epsilon - 2016-10-14

    Tried patching linux-4.8.1 with reiser4-4.7.0 --->
    ./include/linux/fs.h:2787:17: note: expected ‘struct bio *’ but argument is of type ‘int’
    ?.?.?

     
  • Edward Shishkin

    Edward Shishkin - 2016-10-14

    Hello,
    I'll try to prepare after my vacations (at the beginning of November).
    Thanks,
    Edward.

     
  • epsilon

    epsilon - 2016-10-18
    Alright sorry to bug you. Have a lovely time.
    
     
  • Deblanck

    Deblanck - 2016-10-23

    It need edit two files in the reiser4 tree:
    fs/reiser4/page_cache.h
    fs/reiser4/status_flags.c

    In fs/reiser4/page_cache.h:

    @@ -21 +21,3 @@

    -#define reiser4_submit_bio(rw, bio) submit_bio((rw), (bio))
    +#define reiser4_submit_bio(rw, bio) submit_bio(bio)

    In fs/reiser4/status_flags.c:

    @@ -61 +61,3 @@

    lock_page(page);
    
    • submit_bio(READ, bio);
    • submit_bio(bio);
      //blk_flush_plug(current);

    @@ -159 +159,3 @@

    /* We can block now, but we have no other choice anyway */
    
    • submit_bio(WRITE, bio);
    • submit_bio(bio);
      //blk_flush_plug(current);
      return 0; / We do not wait for io to finish. /

    After this changes I completely build new mainline 4.8.3 linux kernel with R4 module and I may load him, create, mount, write and destroy any data on R4 partitions or container files.

    With regards,Deblanck.

     

    Last edit: Deblanck 2016-10-23
    • BratSinot

      BratSinot - 2016-10-31

      I looked in Linux source. submit_bio() from 4.7 assign rw in bio->bi_rw.
      In Reiser4 source, for example, in reiser4_page_io() bio initialise by page_bio(), but in page_bio() rw set to bi_end_io. So, i think, we got an error.

      The correct option (this probably a dirty hack) will look something like this:
      #define reiser4_submit_bio(rw, bio) (((bio)->bi_rw |= (rw)), submit_bio((bio)))

       

      Last edit: BratSinot 2016-10-31
  • Edward Shishkin

    Edward Shishkin - 2016-11-01

    In such situations I prefer to take a look at the respective upstream changes and how other file systems were adjusterd to them. As we can see, now the caller of submit_bio() is responsible for setting the rw flag:
    http://lists.infradead.org/pipermail/linux-mtd/2016-January/064755.html
    so I think that the macro above with some corrections (use ";" instead of "," in the right) should work.

    Thanks,
    Edward.

     
    • BratSinot

      BratSinot - 2016-11-02

      In this case, there is no difference between ',' and ';'. I just gave an example of the correct use (i hope so :) ).
      And i just do fast check for patch from Deblanck.

      So we have no other major changes, so we can test this option? What do this function (to make it easier to track the problem)?
      P.S. То-бишь можно попробовать тот вариант? А за что вообще отвечает данная функция? Дабы было проще отслеживать проблемы.

       

      Last edit: BratSinot 2016-11-02

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.